[英]How to allocate memory for an array of structs inside of a function in C
對於 class 分配,我需要在 main() 中定義一個數組,但分配 memory 並將數據加載到單獨的 function load() 中。 現在 autos[] 沒有填充文件中的數據。 任何幫助表示贊賞。
該結構有 4 個字段:name、floatNum、intNum、color,需要寫入數據。 size 和 autos[] 都在 main 中定義,size 是指 autos[] 中的元素個數。
加載 function
void load(int size, struct data autos[]) {
autos = malloc(size * sizeof(struct data));
FILE *data;
data = fopen("./hw3.data", "r");
int i;
for (i = 0; i < size; i++) {
fscanf(data, "%s %f %d %s", autos[i].name, &autos[i].floatNum, &autos[i].intNum, autos[i].color);
}
}
我想到了。 謝謝克雷格和喬納森給我一些建議。 它獲取所需數組的大小(來自不同的函數)並創建一個並掃描數據文件,將數據放入每個元素中。
struct data* load(int size){
struct data* autos = malloc(size * sizeof(struct data));
FILE* data;
data = fopen("./hw3.data", "r");
int i = 0;
for (i = 0; i < size; i++) {
fscanf(data, "%20s %f %d %20s", autos[i].name, &autos[i].floatNum, &autos[i].intNum, autos[i].color);
}
fclose(data);
return autos;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.