簡體   English   中英

C語言中的Malloc結構數組

[英]Malloc array of struct in C

這是我的工作:我計算一個文件夾中文件的數量,從結構數組中的該文件中獲取數據。 我想分配此結構數組,因為在執行程序之前我不知道文件的確切數量。

這是我的代碼:

struct get_data{
int sequence;
int mask_ID;
char *name;
float intensity;
float angle_correction;
double points[10000];
float X_interval;
};

struct get_data all_data[number_of_file];

考慮我在程序中某個位置之前得到number_of_file。 我想知道如何malloc結構all_data。 我搜尋了,但是在某個時候迷路了。 任何幫助都將受到歡迎。 謝謝。

梅爾。

我建議您為結構內部的名稱變量指定固定的長度,否則您將不得不為每個結構進行malloc分配。 該聲明可能如下所示:

struct get_data
{
    int sequence;
    int mask_ID;
    char name[256];
    float intensity;
    float angle_correction;
    double points[10000];
    float X_interval;
};

然后,您可以使用以下代碼來malloc結構數組:

struct get_data *all_data;

all_data = malloc(number_of_files * sizeof(struct get_data));
if (all_data == NULL)
{
    printf("Malloc failed!\n);
    return -1;
}

/* now you can access each file structure using a for instruction */
int i;
for (i = 0; i < number_of_files; i++)
{
    all_data[i].sequence = ...;
    /* etc. */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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