c语言内存分配失败 - 爱问答

(爱问答)

c语言内存分配失败

下面这个程序运行了就显示“不能成功分配存储块”,有没有大佬知道怎么回事?
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct num {
int number;
struct num *next;
};
int size=sizeof(struct num);
void main()
{
int i;
struct num *list1=NULL,*list2=NULL,*list=NULL,*p1,*p2=NULL,*p3,*p4=NULL;
struct num *insert(struct num *list1,struct num *list2);
for(i=1;i<=5;i++){
if((p1=(struct num *)malloc(size))==NULL){
printf("不能成功分配存储块! ");
exit(0);
}
p1->next=NULL;
p1->number=2*i-1;
if(i=1)list1=p1;
else p2->next=p1;
p2=p1;
}
for(i=1;i<=5;i++){
if((p3=(struct num *)malloc(size))==NULL){
printf("不能成功分配存储块! ");
exit(0);
}
p3->next=NULL;
p3->number=2*i;
if(i=1)list2=p3;
else p4->next=p3;
p4=p3;
}
list=insert(list1,list2);
while(list!=NULL){
printf("%d/n",list->number);
list=list->next;
}
}
struct num *insert(struct num *list1,struct num *list2)
{
struct num *p0,*p1,*p2;
p1=list1;
while(list2!=NULL){
p0=list2;
while((p0->number>p1->number)&&(p1->next!=NULL)){
p2=p1;p1=p1->next;
}
if(p0->number>p1->number){
p1->next=p0;p0->next=NULL;
}
else if(list1=p1){
p0->next=list1;list1=p0;
}
else{
p2->next=p0;p0->next=p1;
}
list2=list2->next;
}
return list1;
}

程序至少有一个基础的错,c语言条件运算符你还是用错的

c语言的等于比较要用==,你用了=,这个是赋值

相关标签:内存c语言

下一篇:转行IT是自学好?还是培训好?

上一篇:java(大神们帮帮小弟吧,为什么没有运行结果,谢谢!!!)

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?