看板 C_and_CPP 關於我們 聯絡資訊
請問一下 為什麼 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