大家好我有一个解决这个练习的问题。我从结构创建了一个实例,并用随机值初始化了属性。n个初始化实例的数组
现在我需要编写一个函数来创建一个数组,并完全初始化该结构的实例。
struct FluxCapacitor* createFluxCapacitor(){ // Instance of my struct
struct FluxCapacitor *capi = malloc(sizeof(*capi));
capi->value = rand();
capi->c_string = randomString();
}
我猜它说起来容易,当我解释是这样的:
当n是10例如,我想打印的阵列我应该有10个随机数字和10个随机字符串。
这就是现在的样子
struct FluxCapacitor** createFluxCapacitorArray(unsigned int n) {
struct capi **array = malloc(n * sizeof *array);
for (int i = 0 ; i < n ; ++i)
{
array[i] = createFluxCapacitor();
}
};
,我总是得到这个错误的main.c | 46 |错误:“for”循环初始声明只在C99或C11模式允许|
'struct FluxCapacitor','Flux'和'struct capi'有什么区别? – mch
我的错我昨天改了我的代码中的名字,并忘记了一个。看起来现在正确 Capi是struct FluxCapacitor的实例 – Timm
对于您提到的特定错误,这意味着您的编译器目标的版本不允许在'for()'中声明值。 I.E.在'for'前声明'i'而不是作为它的一部分 – Toby