求帮助,为什么老是提示内存不能为READ
# include <stdio.h># include <malloc.h>
# include <stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}NODE, *PNODE;
void init(PNODE top);
int push(PNODE top, int e);
int main(void)
{
PNODE S;
int val;
init(S);
push(S, 1);
return 0;
}
void init(PNODE top)
{
top = (PNODE)malloc(sizeof(NODE));
if (NULL == top)
{
exit(-1);
}
top->next = NULL;
printf("the init is OK!!\n");
return;
}
int push(PNODE top, int e)
{
PNODE p = (PNODE)malloc(sizeof(NODE));
if (NULL == p)
{
printf("fail!!\n");
exit(-1);
}
else
{
p->data = e;
p->next = top->next ;
top->next= p;
}
return 1;
}
大家能帮我看看,为什么这段代码一执行就会出错啊。老是显示内存不能为read.
本帖最后由 eeeeelin 于 2012-12-31 17:40 编辑
可能因为变量在常量区,不能更改!!! 我已经知道错在哪里了。
初始化的函数应该是这样的:
void init(PNODE *top)
{
(*top) = (PNODE)malloc(sizeof(NODE));
if (NULL == *top)
exit(-1);
else
(*top)->next = NULL;
printf("the init is OK!!!!\n");
}
页:
[1]