大家好我有一個解決這個練習的問題。我從結構創建了一個實例,並用隨機值初始化了屬性。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