我的代码如何实际产生分段错误?
我想将TOS
保留为双指针。
#include<stdio.h>
#include<stdlib.h>
typedef struct node_tag{
int num;
struct node_tag* next;
}NODE;
void push(int x, NODE **TOS){
NODE* temp = (NODE*) malloc(sizeof(NODE));
temp->num = x;
temp->next = (*TOS);
(*TOS) = temp;
}
int main(){
NODE **TOS = NULL, *temp;
printf("<<<Stack Push>>>\n");
push(0, TOS);
printf("%i\n", (*TOS)->num);
}
答案 0 :(得分:1)
你需要像这样使用它;
int main(){
NODE *TOS = NULL, *temp;
printf("<<<Stack Push>>>\n");
push(0, &TOS);
printf("%i\n", TOS->num);
}