我试图在我的程序中创建一个链表,我无法使用malloc()为结构指针分配内存 . 如何在GCC中为变量分配内存?示例程序如下 . 如何让它在gcc中运行?
#include<stdio.h>
#include <alloc.h>
struct node
{
int data;
struct node * link;
};
void insert (struct node *p, int d)
{
struct node *temp;
temp = malloc(sizeof(struct node));
temp->data=d;
temp->link=NULL;
if(p==NULL)
{
p=temp;
}
else{
while(p->link!=NULL)
p=p->link;
p->link=temp;
}
}
void disp(struct node *p)
{
while(p!=NULL)
{
printf("%d\n",p->data);
p=p->link;
}
}
int main()
{
struct node *p;
p=NULL;
insert(p,7);
insert(p,9);
disp(p);
}
我遇到的错误是:
Line 18: error: alloc.h: No such file or directory
In function 'insert':
Line 13: warning: incompatible implicit declaration of built-in function 'malloc'
4 回答
malloc
在<stdlib.h>
. 包括那个 .阅读该函数的手册页会给你这些信息 . 它不依赖于编译器 .
malloc
在<stdlib.h>
中声明,这就是你想要的#include
.malloc的定义在
stdlib.h
文件中:而不是
alloc.h
.像其他人说:你的错误发生是因为你必须包括
stdlib.h
而不是alloc.h
要打印列表,您必须在
insert
中修改p
. 目前,每次拨打insert
时,您都会传递NULL
. 以这种方式更改代码(将指针传递给insert
):它会打印出来