【发布时间】:2014-08-22 17:07:56
【问题描述】:
我只是想知道以下是否有效。我有一个结构
称为foo,其定义如下:
struct foo {
char name[255];
int amount;
};
在运行时,我需要创建一个由上述结构组成的数组,其大小取决于我从文件输入中接收到的值。假设这个大小是k。下面的代码会适当地分配一个动态大小的结构数组吗?
struct foo *fooarray;
fooarray = malloc(k * sizeof(struct foo));
编辑:如果我想访问这些数组中结构的成员,我会使用 fooarray[someindex].member 格式吗?
【问题讨论】:
-
请注意,动态分配的数组与可变长度数组或 VLA 非常不同。你应该知道这些不是VLA,这样你就不会混淆其他人,或者被其他人混淆。
-
好的,感谢您解决这个问题。术语上的差异以前对我来说并不明显,但现在是。
标签: c struct dynamic-arrays variable-length-array