我不能运行我的结构程序。
因为它得到一个“需要常量表达式”错误。
在这一行中:
struct book_info book[i];
最佳答案
您几乎可以肯定使用的是不支持可变长度数组的编译器(或编译器模式)。
声明可变长度数组(vla)的功能已添加到C99中,因此,如果编译器不符合标准,或者使用类似于gcc -std=c89
的代码进行编译,则它将无法工作。
例如:
pax$ cat qq.c
#include <stdio.h>
#include <string.h>
int main (void) {
int i = 7;
char x[i];
strcpy (x, "xyz");
printf ("%s\n", x);
return 0;
}
pax$ gcc -std=c99 -pedantic -Wall -o qq qq.c ; ./qq
xyz
pax$ gcc -std=c89 -pedantic -Wall -o qq qq.c
qq.c: In function ‘main’:
qq.c:5: warning: ISO C90 forbids variable length array ‘x’
关于c - 结构程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5335857/