Dan*_*iel 3 c arrays multidimensional-array
我可以在 c 中初始化一维数组,无论是否初始化其大小:
int x[] = {1,2,3,4,5};
int y[5] = {1,2,3,4,5};
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试对二维数组执行相同操作时,例如
int x[][] = {{1,2,3},
{4,5,6}};
Run Code Online (Sandbox Code Playgroud)
我得到一个error: array type has incomplete element type. 如果我在不同的行声明和初始化数组,也会发生同样的错误。但是,我可以在指定大小的同时初始化它:
int x[2][3] = {{1,2,3},
{4,5,6}};
Run Code Online (Sandbox Code Playgroud)
这一点没有错误。我的问题是,是否可以在不首先初始化其大小的情况下初始化多维数组?我问这个问题是因为对于最终的项目,我需要能够声明数组并稍后初始化它们,并且在编译时将不知道它们的大小。
是否可以在不首先初始化其大小的情况下初始化多维数组?
不,不是以您提议的方式或类似的方式。
我需要能够声明数组并稍后初始化它们,并且它们将具有动态大小。
如果编译时大小未知,则应使用 分配数组a = malloc(x * y * sizeof(value_t))。然后像这样索引它a[i + j*y]。
| 归档时间: |
|
| 查看次数: |
11016 次 |
| 最近记录: |