[問題] 這樣的語法是不是會出問題
最近遇到一個很奇怪的問題 不知道是問題是在哪, 我寫出以下程式碼:
/*------------------------------*/
unsigned char* a[1<<20];
printf("%u",sizeof(a));
/*------------------------------*/
這樣的code 會造成coredump.......陣列的type並不會影響會不會coredump,
若是用gdb去看sizeof(a) 居然是零, 這樣到底是哪邊出了問題呢???
1<<20 = 1048576 , 一個unsigned char* 為 4 bytes, 所以陣列總共為 4194304 bytes
4194304 bytes = 4MB(大約) 或是 2*10^22, 對sizeof的return type也沒有overflow,
4MB的記憶體也應該還可以....................
請版上的先進幫忙解惑一下, 這樣的code到底發生了什麼事情 .........
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.205.3
→
10/29 23:01, , 1F
10/29 23:01, 1F
→
10/29 23:06, , 2F
10/29 23:06, 2F
推
10/29 23:09, , 3F
10/29 23:09, 3F
推
10/29 23:24, , 4F
10/29 23:24, 4F
→
10/29 23:26, , 5F
10/29 23:26, 5F
→
10/29 23:27, , 6F
10/29 23:27, 6F
→
10/29 23:31, , 7F
10/29 23:31, 7F
→
10/29 23:32, , 8F
10/29 23:32, 8F
→
10/29 23:37, , 9F
10/29 23:37, 9F
→
10/30 07:16, , 10F
10/30 07:16, 10F
→
10/31 12:33, , 11F
10/31 12:33, 11F