sizeof
剛剛在查資料,剛好看到前幾天遇到一個我不會的題目…
把程式丟給 gcc 編譯後執行,發現我完全寫錯了…..
題目如下:
int main (){ int a; int *b; char c; char *d; char e[100]; char *f[100]; char g[7][8]; char *h[7][8]; printf("%d, %d, %d, %d, %d, %d, %d, %d", sizeof(a), sizeof(b), sizeof(c), sizeof(d), sizeof(e), sizeof(f), sizeof(g), sizeof(h));}
在 32 位元機器的情況下,答案應該是 4, 4, 1, 4, 100, 400, 56, 224
因為 sizeof 是求 compile time 時得到的記憶體空間(in byte), 可是當時我一直想成陣列會給陣列大小, 陣列指標跟二維陣列以上的情況我就 confuse 了, 這題好像是在趨勢遇到的吧..
爆炸!!
Leave a Reply