Q
结构程序
0
A
回答
4
您几乎肯定使用编译器(或一个编译器模式)不支持可变长度数组。
声明可变长度数组(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’
+3
...最重要的是,变长数组不能在文件范围中定义。 – AnT 2011-03-17 07:05:50
0
您应该使用动态分配。我想,这正是你想要的东西: http://fydo.net/gamedev/dynamic-arrays
问候
0
在旧的C标准(C89),你可以只设置数组长度有“恒数字文字”,即
int array[100];
或
#define X 100
int array[X];
在新的C标准(C99),如果变量被在文件范围(全局)分配同样适用。但是,如果数组在本地作用域(在函数内部)分配,那么C99允许您使用非常量值,如您的示例中所示。
相关问题
- 1. C++程序结构
- 2. Ruby程序结构
- 3. Slim程序结构
- 4. 应用程序结构
- 5. Web应用程序结构
- 6. iPhone应用程序结构
- 7. Java Swing程序结构
- 8. Django应用程序结构
- 9. Ruby程序的结构
- 10. 结构CodeIgniter应用程序
- 11. Java程序结构建议
- 12. MVC应用程序结构
- 13. 解析Perl程序结构
- 14. 简单结构程序C
- 15. OpenGL和OOP程序结构
- 16. Rails应用程序结构
- 17. VB.NET和程序结构
- 18. php:程序对象 - 结构?
- 19. Laravel应用程序结构/体系结构
- 20. 程序结构和指针错误(结构,C++)
- 21. Node.js体系结构和应用程序结构
- 22. 应用程序的类结构和数据库结构
- 23. Javascript的体系结构/应用程序结构最佳实践?
- 24. Web应用程序基础结构
- 25. 如何简化应用程序结构?
- 26. 结构tkinter程序 - 最佳实践
- 27. Db4o Mvc应用程序体系结构
- 28. SPA的应用程序结构 - AngularJS
- 29. 控制台应用程序结构
- 30. 可视化结构PHP程序
请用适当的语言标记您的问题(编辑您的帖子)。该ora-xxxx错误标记是无关的。我猜对了[E]。 – Mat 2011-03-17 07:02:16
请提供更多的上下文。 – 2011-03-17 07:20:37