永发信息网

同样一个题目

答案:1  悬赏:40  手机版
解决时间 2021-05-18 22:16
  • 提问者网友:鐵馬踏冰河
  • 2021-05-17 23:34

#include <stdio.h>
#include <malloc.h>
typedef int DataType;
typedef struct node{
DataType data;
struct node *next;
}LinkList;

void *InitList(LinkList *head);
LinkList *AddHead(LinkList *head,DataType x);

void main(){

LinkList *l=NULL;
InitList(l);
AddHead(l,4);



}

void *InitList(LinkList *head)
{

head=(LinkList*)malloc(sizeof(LinkList));
head->next=NULL;

return head;
}

LinkList *AddHead(LinkList *head,DataType x){

LinkList *p;

p = (LinkList *)malloc(sizeof(LinkList));
p->data = x;
p->next = head->next; head->next = p;

return head;

}

我用的是VC++6.0精简版

调用第二个函数的时候会出现对话框 说内存不是read

麻烦看下

最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-05-17 23:57

你好.


你可以InitList调用完成后,将其返回值赋值给l; 这样就不会有问题了;



void main(){

LinkList *l=NULL;
l=(LinkList *)InitList(l); //或者将该函数的返回类型改为 LinkList * ;
AddHead(l,4);
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯