3 回答
TA貢獻1859條經驗 獲得超6個贊
如果表達式是常量表達式,則其值應大于零。
gcc -std=c99 -pedantic
TA貢獻1835條經驗 獲得超7個贊
C99 6.7.2.1,第16節
作為特例,具有多個命名成員的結構的最后一個元素可能具有不完整的數組類型;這稱為靈活數組成員。
struct Array {
size_t size;
int content[];};void foo(size_t x) {
Array* array = malloc(sizeof(size_t) + x * sizeof(int));
array->size = x;
for (size_t i = 0; i != x; ++i) {
array->content[i] = 0;
}}Array a = { 3, { 1, 2, 3 } };1是便攜的方式,雖然很奇怪 0在表示意圖方面做得更好,但就標準而言并不合法,一些編譯器(包括GCC)將其作為擴展提供了支持。
malloc
TA貢獻1830條經驗 獲得超9個贊
-pedantic
zero.c:3:6: warning: ISO C forbids zero-size array 'a' [-pedantic]
- 3 回答
- 0 關注
- 1024 瀏覽
添加回答
舉報
