作者su35 (su35)
看板C_and_CPP
標題[問題] 指標 記憶體大小問題
時間Sun Jun 7 13:16:45 2009
請問一下 為什麼 ch1&ch2的sizeof 跟 ch3 的sizeof 會是 4 跟 6 呢
不是應該ch1&ch2是25嗎
char *ch1,*ch2;
char ch3[]={'a','b','c','d','e','f'};
ch1="good morning good morning";
ch2=(char*)malloc(sizeof(char)*strlen(ch1)+1);
strcpy(ch2,ch1);
printf("%d\n",sizeof(ch1)); //輸出結果這是 4
printf("%d\n",sizeof(ch2)); //輸出結果這是 4
printf("%d\n",sizeof(ch3)); //輸出結果這是 6
system("pause");
--
~剝好了,小心燙喔~ ◢◤ ◢
︴◤ ▆ ▆喔喔~ ◢
ˋ◢██◣ ◢██◣◢ 哇~ ◢◤ ◣◢██◣◥█ ρ◤ ██◢◤
█◥◥◥ ◤◤◤ █ ˊ你好體貼喔~ ◢◤ █ ◥◥◥ ∴ ◣ ██◢◤
◤ ● ●⊿ ●●▄ ◥ ◢◤唉呀! ◤ ● <ζ█◥◣ ◢◤
◥██ ◤◣ ◥▼"█◤◣ ◢◤好燙~ˋ ◢◥█"▅/▊█◣ ◢◤
◢◣██◤ ◢▏█▉◣ ◢◤ ◢██╲ █︴◤
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.172.79
推 Bencrie:ch1,2 => sizoef(char*) ch3 => sizeof(char[]) 06/07 13:33
推 zlw:目前電腦所有的指標都是4 Bytes=32位元,這樣才能定位所有位址 06/07 13:55
→ su35:感謝 讓我對指標更了解 06/07 14:06
推 legnaleurc:那是因為你用 32bit CPU,不是所有電腦都這樣 = = 06/07 14:12
推 zlw:本來是想講簡單一點,不過這樣說法的確不太負責,謝謝指正。 06/07 14:15