C 的指標賦值問題,C 整型指標賦值的問題

時間 2022-04-23 01:19:53

1樓:風若遠去何人留

假設 最原始的

old = 1

cur = 2

(當然實際位址不可能是 只是分析方便 假設的)那麼執行

usermap *p1 = old_user_map; //p1 = 1

old_user_map = cur_user_map;//old = 2

cur_user_map = 0;//cur = 0if (p1)

delete p1;//delete 1

也就是說 原始的old被釋放,執行後old為原本cur的值 cur為0

如果是c的話 沒有delete 需要用free, 效果是相同的

2樓:匿名使用者

關鍵是你執行第一條**前,old_user_map == cur_user_map ?

如果不等於,那你之後的第二條**就改變了old_user_map,雖然你 cur_user_map = 0 ,但是old_user_map 這個指標沒有被賦值為null,所以old_user_map 還是指向乙個記憶體區域的。

p1最後釋放了 old_user_map 最開始所指向的記憶體,而不是現在指向的記憶體,而且p1最後需要賦值為null。

c++整型指標賦值的問題

3樓:

p這個指標變數沒有分配儲存空間就開始向他指向的位址存值了,當然是錯的int *p=(int *)malloc(256*sizeof(int));//讓他指向一塊動態分配的記憶體塊就行了

或者int a[256]=;

int i,*p;

p=a;

for(i=0;i<256;i++)

這樣也行,讓p指向確定的陣列a

你動態分配的記憶體只能存乙個int,

p=(int *)malloc(sizeof(int));

改成p=(int *)malloc(sizeof(int)*256);

4樓:丁文博

你好,你應該通過malloc申請空間,或者是用陣列

現在你這樣p+i指向的是乙個未知空間,可能是系統需要用到的,不允許你更改內容,即使允許你這樣也是不對的,因為這個空間屬於這個程式,用它就是錯誤的。

5樓:匿名使用者

你只申請了乙個int的空間,卻操作了256個int,當然不對了

6樓:韓亭晚區溪

char*p="abc";

是在記憶體開闢4個位元組的儲存空間,依次存放'a'

'b''c'

'\0'

4個字元

並把存'a'的那個位元組的位址

賦值給指標p

char*p;是說

定義乙個指向字元型資料的指標p

指標p在記憶體中以

unsigned

int資料型別存放

而非以char型別存放

*p=*(p+0)=p[0]

c\c++指標變數怎麼賦值給普通變數。

7樓:

指標變數指向的是一塊記憶體區域,是乙個記憶體位址,我們要的其實是指標變數指向記憶體區域位址的內容,我們可以用去內容作用符int *p = new int; int i= &p;可以取出指標指向記憶體區域的內容,然後將取出的內容複製給普通變數,但是指標指向區域內容要與普通變數的內容匹配。

8樓:風雲之歌

強制轉換為整形。

int *p = &a;

int addr = (int) p;

c++指標賦值問題,賦值時候是賦指標位址還是賦內容

9樓:大大象

addnode是在佇列最後追加節點。首先要知道最後節點是哪個。

while()每迴圈一次,p = p->next,p就指向了下乙個節點,直到p指向最後節點。

p->next = n;把新的節點n掛在原來最後節點的後面。n成了最後的節點。

n->next = null;保證沒有野指標。

C 給指標賦值的問題,C 整型指標賦值的問題

char p abc 是在記憶體開闢4個位元組的儲存空間,依次存放 a b c 0 4個字元 並把存 a 的那個位元組的位址 賦值給指標pchar p 是說 定義乙個指向字元型資料的指標p指標p在記憶體中以 unsigned int資料型別存放 而非以char型別存放 p p 0 p 0 指標指向內...

c語言指標問題,C語言指標的賦值問題

因為一維陣列陣列名就是第乙個元素的位址,二維陣列,是 每個元素為一維陣列 的一維陣列,所以,int a 3 5 a就是乙個有5個int元素的一維陣列 a 0 的首位址。a i 就是a i 0 的位址,a i j就是a i j 的元素位址。這個簡單,看圖 a就是a 3 5 的首位址,也是a 0 的首位...

c語言的指標賦值問題

char p p才是指標,p是p指向位址的值。如果x是變數,x是取x的位址 p x 是往p指向的位址裡面存入x的值 p是指標,但實際上p也是乙個變數,只不過p裡存的是個記憶體位址 c語言哪來的引用!第乙個是p指向x的位址。即p中存放的是x位址的位址。也可以是正確的,但是很可能達不到你的預期目的在定義...

C 中指標的賦值操作,C C 指標變數怎麼賦值給普通變數。

你test函式中傳的是指標,你新建了乙個book物件p,賦值後,把p的位址給了head,但是這並沒有改變head所指向的book物件,也沒有改變head的位址 這和你傳乙個變數一樣,比如 void test int a a 1 你執行這個test後並沒有改變a的值,這個你的head p,是一樣的 指...

c語言程式設計 指標變數賦值,C語言程式設計 指標變數賦值

要將指標指向的值賦值到變數上,需要將指標指向的值取出,然後執行賦值操作。對指標取值需要使用取值運算子 這個符號和乘相同,但功能不同。用於取值時,為單目運算,與後續的指標相結合,實現取指標指向的值的效果。比如int a 10 int b int p a 這時p指向變數a的位址,指向的值為10,要將其賦...