[問題] 指標輸出
對於指標只有著微薄的概念如下:
int aa = 5;
int* bb = &aa; //指標變數bb內存放aa記憶體位址
printf("%d", *bb); //利用取值運算子取得bb指向的變數內容值
//output 5
目前為止都沒問題
接下來, 就遇到下面的問題了
char* buf = malloc(sizeof(char)*6);
printf("%x \n", buf);
snprintf(buf, 6, "%s", "hello");
printf("%s \n", buf); <-- 依照前述概念,
這邊為何不是*buf,
用取值運算子將malloc配置出的
記憶體空間內容值印出 ?
printf("%x \n", buf);
free(buf);
另外我發現這個程式片段的三個printf 分別會印出
02A83E
hello
02A83E
無法理解...
同樣都是印出buf指到的那塊記憶體空間的內容值,
怎麼會有這樣的結果?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.6.20
→
03/07 02:06, , 1F
03/07 02:06, 1F
→
03/07 10:32, , 2F
03/07 10:32, 2F
→
03/07 11:03, , 3F
03/07 11:03, 3F
→
03/07 12:06, , 4F
03/07 12:06, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章