我可以在 C 语言中初始化一个一维数组,有或没有指定其大小:
int x[] = {1,2,3,4,5};
int y[5] = {1,2,3,4,5};
但是,当我尝试对二维数组进行相同的操作时,例如
int x[][] = {{1,2,3},
{4,5,6}};
我遇到了一个错误:error: array type has incomplete element type
。如果我在不同的行上声明和初始化数组,也会出现相同的错误。
但是,如果我在声明时同时初始化并指定大小,就不会出现这个错误:
int x[2][3] = {{1,2,3},
{4,5,6}};
这个没有错误。
我的问题是,是否可以在不初始化其大小的情况下初始化多维数组?我问这个问题是因为在一个最终的项目中,我需要能够声明数组并在以后初始化它们,而当编译时它们的大小是未知的。
malloc()
进行动态分配。 - Barmar