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,要將其賦...