一般堆栈推送错误
Generic stack push error
我正在尝试创建通用堆栈。当我尝试推送一个值时遇到问题
进入堆栈,程序在 memmove 行崩溃:
typedef struct s_node{
void *info;
struct s_node *next;
}t_node;
typedef struct{
char name[50];
int salary;
}t_employee;
typedef t_node* t_stack;
void createStack(t_stack *p){
*p=NULL;
}
int push(t_stack *p,void *inf,int siz){
t_node *new=(t_node*)malloc(sizeof(t_node));
if(!new)return 0;
memmove(new->info,inf,siz); !!!!!CRASH
new->next=*p;
*p=new;
return 1;
}
int main()
{
t_stack p;
t_employee e={"Jhon Freeman",30000};
createStack(&p);
push(&p,&e,sizeof(t_employee));
return 0;
}
new->info 指向任何地方。初始化它:)
你声明了new,但是new->info没有初始化。
我正在尝试创建通用堆栈。当我尝试推送一个值时遇到问题 进入堆栈,程序在 memmove 行崩溃:
typedef struct s_node{
void *info;
struct s_node *next;
}t_node;
typedef struct{
char name[50];
int salary;
}t_employee;
typedef t_node* t_stack;
void createStack(t_stack *p){
*p=NULL;
}
int push(t_stack *p,void *inf,int siz){
t_node *new=(t_node*)malloc(sizeof(t_node));
if(!new)return 0;
memmove(new->info,inf,siz); !!!!!CRASH
new->next=*p;
*p=new;
return 1;
}
int main()
{
t_stack p;
t_employee e={"Jhon Freeman",30000};
createStack(&p);
push(&p,&e,sizeof(t_employee));
return 0;
}
new->info 指向任何地方。初始化它:)
你声明了new,但是new->info没有初始化。