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