[問題] dereference pointer to global array

看板C_and_CPP (C/C++)作者 (5566 超強)時間14年前 (2012/06/21 10:21), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
請問一下各位 #define SIZE 10000 static char buffer[SIZE]; static char *buffercp = buffer; char* alloc() { ....... } void FREE() { ....... } void main() { ....... } 想請問一下在外面的 *buffercp = buffer 為什麼 *buffercp = 0 我是用VC 2005 而不是不是 buffer 的address 0x00417178 debug看到 buffer = buffercp = 0x00417178 位置 我的觀念是  *buffercp = 0x00417178 buffercp = another address 感謝各位糾正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.210.106.78

06/21 10:50, , 1F
*buffercp是該指標指向的位置內容,也就是buffercp[0]
06/21 10:50, 1F

06/21 10:51, , 2F
global變數會被初始化為0,所以你拿到的值就是0
06/21 10:51, 2F

06/21 10:52, , 3F
buffercp才是那個位置,指標紀錄的就是記憶體位址
06/21 10:52, 3F

06/21 14:12, , 4F
buffercp 加上 static 也會有點問題,可以查一下該修飾子
06/21 14:12, 4F

06/21 17:34, , 5F
謝謝懂了
06/21 17:34, 5F

06/21 19:47, , 6F
如果你下好標題, 答案自然就出來了
06/21 19:47, 6F
文章代碼(AID): #1FueKc1V (C_and_CPP)
文章代碼(AID): #1FueKc1V (C_and_CPP)