繁体   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