在写栈的一个应用时遇见这样的一个问题

SqStack s;
s->base = (int*)malloc(sizeof(int)*10);

通过这样一个代码引用的时候,会导致程序出现异常

C语言结构体指针的引用问题

经过一番调试之后发现如果把程序修改成这样,程序就不会有问题

SqStack sq;
(&sq)->base = (int*)malloc(sizeof(int)*10);

经过思考和查阅资料发现,在开始的代码之中,并没有创建一个SqStack类型的变量,换句话来说,开始的代码之中指针没有指向的指导致程序寻址时出现错误,指针变量要正确的指向那个需要改写的变量之中。没有正确引用的指针会很容易导致问题的。

 

另外一个小问题是,C语言在传递指针类型的时候在函数中只有*a这一种形式。&a这种形式实在c++中使用的。

 

相关文章:

  • 2021-08-16
  • 2022-12-23
  • 2021-12-29
  • 2021-12-25
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2021-08-06
猜你喜欢
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-06-11
  • 2022-12-23
  • 2021-09-20
  • 2021-07-26
相关资源
相似解决方案