簡體   English   中英

如何為 C 中的 function 內部的結構數組分配 memory

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM