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. 程序的結構?
- 3. MySQL程序結構
- 4. Ruby程序結構
- 5. Slim程序結構
- 6. Django應用程序結構
- 7. c程序 - 結構指針
- 8. VB.NET和程序結構
- 9. Java Swing程序結構
- 10. 解析Perl程序結構
- 11. PHP應用程序結構
- 12. socket.io應用程序結構
- 13. Android程序包結構
- 14. Rails應用程序結構
- 15. 結構CodeIgniter應用程序
- 16. 程序包命名結構
- 17. 應用程序結構
- 18. 簡單結構程序C
- 19. OpenGL和OOP程序結構
- 20. php:程序對象 - 結構?
- 21. Java程序結構建議
- 22. Ruby程序的結構
- 23. iPhone應用程序結構
- 24. Web應用程序結構
- 25. MVC應用程序結構
- 26. Android應用程序結構
- 27. C多線程應用程序結構
- 28. 應用程序的類結構和數據庫結構
- 29. 程序結構和指針錯誤(結構,C++)
- 30. Javascript的體系結構/應用程序結構最佳實踐?
請用適當的語言標記您的問題(編輯您的帖子)。該ora-xxxx錯誤標記是無關的。我猜對了[E]。 – Mat 2011-03-17 07:02:16
請提供更多的上下文。 – 2011-03-17 07:20:37