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 关注
- 1071 浏览
添加回答
举报
