我想用我试过的表的动态大小来编译程序int Table[];
我的程序
编译器返回此消息 4 C:\Documents and Settings\Administrateur\Mes documents\TD4.c `table' 的存储大小未知?不知道存储?我有什么错
我想用我试过的表的动态大小来编译程序int Table[];
我的程序
编译器返回此消息 4 C:\Documents and Settings\Administrateur\Mes documents\TD4.c `table' 的存储大小未知?不知道存储?我有什么错
当您使用表格时,您必须声明它的初始大小:int table[SIZE];
. 当您在编译时不知道表的大小(例如,您从用户读取数据)时,您总是可以以不同的方式分配内存(大小是变量,而不是常量):
int* table = (int*)malloc(sizeof(int)*size));
如果要创建动态表/数组,可以使用C 中malloc
的函数和new
C++ 中的运算符来实现。您应该根据您是使用 C 还是 C++free
来取消分配内存。delete
您不能以这种方式动态定义数组。你必须给它一个存储大小:
int Table[43];
另一种方法是使用 malloc:
int *Table = malloc (sizeof (int) * N);
int i;
for (i = 0; i < N; i++)
Table[i] = i;
其中 N 将通过某种方式传递。之后不要忘记free()
在数组上使用。