【发布时间】:2021-05-25 22:21:37
【问题描述】:
我正在创建一个这样的结构:
typedef struct stat{
char name[50], type[50];
double x, y, lar, alt;
} info;
typedef struct list{
int prim, livre;
info A[];
} LS;
int main(){
int n;
scanf("%i", &n);
LS *mylist = malloc(sizeof(LS) + n);
mylist->info->A[3] = 1.5;
printf("%lf", mylist->info->A[3]);
return 0;
}
我知道可以在结构中创建灵活的数组类型,但是我不知道如何访问数组以使用它。我应该如何做到这一点以及它如何适用于字符串?
我想使用一个数组(其大小将由用户输入定义),在其中我将存储一个结构,其名称、类型、x、y、lar、alt 在位置 A[0],另一个在位置 A[1] 等等。
【问题讨论】:
-
请记住,您传递给
malloc的大小是以字节 为单位的大小。当你在调用中添加n时,你只添加n字节用于分配,但你想添加n * sizeof(info)字节:malloc(sizeof(LS) + (n * sizeof(info))