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