C语言,怎么为动态结构体数组分配内存

2024-12-02 02:17:51
推荐回答(2个)
回答1:

这行代码:array = (struct record *)malloc(sizeof(struct record )*num);
是要申请struct record类型的内存,而你定义成int*,所以int* array改成struct record* array,另外num和i的定义不要record定义在一起,否则类型和record一样,要独立定义为:int num,i,最后,scanf("%c", &array[i].coef);改成scanf("%f", &array[i].coef);

回答2:

看看你的部分程序!
struct record
{
float coef;
int expn;
};
/*提示输入num个数据*/
printf("please input %d elements: ", num);
for (i = 0; i < num; i++)
{
scanf("%c", &array[i].coef);
scanf("%d", &array[i].expn);
}
你的结构体中的元素coef是定义成浮点型的,而你在下面输入的时候用的是%c字符方式接收的,这是怎么回事啊!
编程的时候一定要细心,一个标点都不能出错!