[閒聊] 這裡有C語言大師嗎 關於int的大小

作者: Wardyal (Wardyal)   2024-03-01 09:39:44
我有一個array
int a[] = {1,2,3,4,5,6,7,8,9};
我要印出來
for(int i = 0 ;i < sizeof(a)/sizeof(int*);i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
為什麼最後都只印出來前四組
我在windows測都可以印8組 為什麼在linux只剩4組
跟甚麼int大小有關係嗎
作者: Wardyal (Wardyal)   2023-03-01 09:39:00
還是是我其他地方沒注意到
作者: walter741225 (瓦特)   2024-03-01 09:45:00
如果你想要自己debug 有一個方向就是把兩個sizeof都print出來 你應該會發現兩個環境的數值不同
作者: surimodo (好吃棉花糖)   2024-03-01 09:45:00
阿肥看估狗的 = =
作者: walter741225 (瓦特)   2024-03-01 09:46:00
咕狗sizeof int* 你就會知道為什麼會因為環境不同而數值不一樣了
作者: HGK (HGK)   2024-03-01 09:47:00
有人打了
作者: Wardyal (Wardyal)   2024-03-01 09:47:00
喔喔 我看一下所以sizeof(資料型態*) 抓出來的都是指標大小而已用哪個資料型態其實都會是一樣的嗎
作者: crimsonmoon9 (緋月)   2024-03-01 09:49:00
你的windows是用32位元的嗎
作者: Wardyal (Wardyal)   2024-03-01 09:51:00
不是
作者: k300plus (300plus)   2024-03-01 09:51:00
回10樓的問題 對
作者: DJYOSHITAKA (Evans)   2024-03-01 09:51:00
存地址的bit數在兩個系統上不同
作者: crimsonmoon9 (緋月)   2024-03-01 09:52:00
關鍵字data model看一下
作者: Wardyal (Wardyal)   2024-03-01 09:52:00
喔喔 那我耍白癡了 之前sizeof(char*)就只是賽到
作者: surimodo (好吃棉花糖)   2024-03-01 09:52:00
有沒有一種可能 以前用的char寫法也是不安全寫法= =
作者: tzyysang (tzyysang)   2024-03-01 09:53:00
請問你們公司是不能連google只能上ptt嗎= =
作者: Wardyal (Wardyal)   2024-03-01 09:53:00
問問看 對阿
作者: tsukiyo99 (OωO)   2024-03-01 11:06:00

Links booklink

Contact Us: admin [ a t ] ucptt.com