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;

 

posted @ 2023-03-30 19:51  正方形的被子  阅读(16)  评论(0)    收藏  举报