problem about C

Justin Links 2012-03-09 11:36:20
怎么运行的时候就出错

任务就是计算a+b

要求第一行输入整形N,然后下面接着输入N行,每一行有一对整型值,中间用空格隔开

输出分为N行,每一行输出一组a和b的值

例如:
输入:
2
1 5
4 4
输出:
6
8


#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,i,N;
int *p;
scanf("%d",&N);
p=(int*)malloc(N);
for(i=0;i<N;i++)
{scanf("%d %d",&a,&b);
p[i]=a+b;}
for(i=0;i<N;i++)
printf("%d\n",*p++);
free(p);
return 0;
}
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
querdaizhi 2012-03-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 stardust20 的回复:]

malloc的内存不够,应该是p=(int*)malloc( sizeof(int) * N );还有最好在malloc之后判断下p是否等于NULL,以确定是否分配成功
[/Quote]
++ 申请的内存不够。
C__Allen 2012-03-09
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a,b,i,N;
int *p;
scanf("%d",&N);
p=(int*)malloc(sizeof(int)*N);

for(i=0;i<N;i++)
{
getchar();
scanf("%d %d",&a,&b);
p[i]=a+b;
}
for(i=0;i<N;i++)
printf("%d\n",*p++);

free(p);

return 0;

}
xs767461 2012-03-09
  • 打赏
  • 举报
回复
楼上正解啊,楼主应该注意的
stardust20 2012-03-09
  • 打赏
  • 举报
回复
malloc的内存不够,应该是p=(int*)malloc( sizeof(int) * N );还有最好在malloc之后判断下p是否等于NULL,以确定是否分配成功

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧