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

#include<stdio.h>#include<malloc.h>#include<stdlib.h>structrecord{floatcoef;intexpn;}... #include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
struct record
{
float coef;
int expn;
};

void main()
{
int *array = 0, num, i;
printf("please input the number of element: ");
scanf("%d", &num);

/*申请动态数组使用的内存块*/
array = (struct record *)malloc(sizeof(struct record )*num);
if (array == 0) /*内存申请失败,提示退出*/
{
printf("out of memory,press any key to quit...\n");
exit(0); /*终止程序运行,返回操作系统*/
}

/*提示输入num个数据*/
printf("please input %d elements: ", num);
for (i = 0; i < num; i++)
{
scanf("%c", &array[i].coef);
scanf("%d", &array[i].expn);
}

/*输出刚输入的num个数据*/
printf("%d elements are: \n", num);
for (i = 0; i < num; i++)
{
printf("%f,", array[i].coef);
printf("%d,", array[i].expn);
}
printf("\b \n"); /*删除最后一个数字后的分隔符逗号*/
free(array); /*释放由malloc函数申请的内存块*/
getch();
}

高手帮帮忙 !!怎么修改正确
展开
 我来答
cwc_2009
2010-10-17 · TA获得超过304个赞
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:172万
展开全部
这行代码: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);
叁生万物
推荐于2016-04-15 · TA获得超过6259个赞
知道小有建树答主
回答量:2871
采纳率:41%
帮助的人:1010万
展开全部
这行代码: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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
半季流年
2010-10-16 · TA获得超过1533个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:766万
展开全部
看看你的部分程序!
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字符方式接收的,这是怎么回事啊!
编程的时候一定要细心,一个标点都不能出错!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式