[語法] 請問gcc裡 int a[0]; 這種寫法

看板C_and_CPP作者 ( )時間16年前 (2009/12/19 17:04), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
請問在gcc中可以宣告一個 zero length array ex: int a[0]; 這個東西的性質是甚麼呢?? 他有type 也有value跟address 但是sizeof他得到的又是0 我看到他的用法是宣告在struct最後面 ex: typedef struct test { int a; int *p; int end[0]; } TEST; 以便於使用malloc出來memory後,然後cast成那個struct 這樣struct就可以使用malloc後面多出來的空間 但是為什麼我用 p = end; 再用p去access後面的空間會失敗呢?? 主要就是不了解 zero length array的性質 請教大家 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.151.153

12/19 17:07, , 1F
本版 #1AY_NFx1 應該可以解決你的疑問
12/19 17:07, 1F

12/19 17:07, , 2F
(就記得前一陣子才回過這個東西...)
12/19 17:07, 2F

12/19 22:47, , 3F
總之就是一個指向額外空間的名稱 並且空間與test連續
12/19 22:47, 3F
文章代碼(AID): #1BB9SPfh (C_and_CPP)