一个关于malloc函数位置问题

+86 15680936349 2020-03-24 08:38:20
第一个方式一运行就崩溃 搞得我崩溃
第二个是我玄学操作搞对了
能有大神给帮我解答一下么跪求了
这是pta
6-2 删除单链表偶数节点 (15分)题目
struct ListNode *createlist()
{
struct ListNode *head,*p,*q;int m;
head=NULL;
p=q=(struct ListNode *)malloc(sizeof(struct ListNode *));
while(scanf("%d",&m)&&m!=-1)
{
p->data=m;
if(head==NULL)head=p;
else q->next=p;

q=p;
p=(struct ListNode *)malloc(sizeof(struct ListNode *));


}
p=NULL;
return head;


}
struct ListNode *createlist()
{
struct ListNode *head,*p,*q;int m,oo;
head=NULL;



while(scanf("%d",&m)&&m!=-1)
{
p=(struct ListNode *)malloc(sizeof(struct ListNode *));

p->data=m;
if(head==NULL)head=p;
else q->next=p;

q=p;



}
p->next=NULL;
return head;


}



完整的代码





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

struct ListNode {
int data;
struct ListNode *next;
};

struct ListNode *createlist();
struct ListNode *deleteeven( struct ListNode *head );
void printlist( struct ListNode *head )
{
struct ListNode *p = head;
while (p) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
}

int main()
{
struct ListNode *head;

head = createlist();
head = deleteeven(head);
printlist(head);

return 0;
}
typedef struct ListNode *List;
struct ListNode *createlist()
{
struct ListNode *head,*p,*q;int m;
head=NULL;
p=q=(struct ListNode *)malloc(sizeof(struct ListNode *));
while(scanf("%d",&m)&&m!=-1)
{
p->data=m;
if(head==NULL)head=p;
else q->next=p;

q=p;
p=(struct ListNode *)malloc(sizeof(struct ListNode *));


}
p=NULL;
return head;


}

struct ListNode *deleteeven( struct ListNode *head )
{

struct ListNode *p,*q;
p=head;
while(head && head->data%2==0){
p = head;
head = head->next;
free(p);
}
p=head;

while(p&&p->next)
{
while(p->next&&p->next->data%2==0)
{
q=p->next;
p->next=q->next;
}

p=p->next;

}
return head;
}
...全文
235 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushot 2020-04-14
  • 打赏
  • 举报
回复
p=q=(struct ListNode *)malloc(sizeof(struct ListNode *));内存分配有问题,
p=q=(struct ListNode *)malloc(sizeof(struct ListNode ));

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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