在顺序栈的取栈顶操作时,想利用指针来进行值的传输,最后却输出不出来
1 bool GetTop(SqStack S,int *e)//读栈顶元素 2 { 3 if(S->top==-1) 4 { 5 return false; 6 } 7 else 8 { 9 *e=S->data[S->top]; 10 return true; 11 } 12 }
1 int *e; 2 GetTop(S,e); 3 printf("%d",*e); 4 return 0;
这便是野指针的错误,因为指针未进行初始化,指向了一个未知变量,存储了这个未知变量的地址,结果也是不可知的
所以向函数中传入的也是一个未知的地址
解决方法:进行指针的初始化
1 int *e; 2 int a=0; 3 e=&a; 4 GetTop(S,e); 5 printf("TOP: %d",*e); 6 return 0;