遇到的BUG

内存指针相关

C++结构体的初始化问题

一个C++服务偶发性段错误,调试后发现是一个指针问题。
一个C库的结构体struct S3_Prop,内部有一个指针。
使用时我直接S3_Porp p;,然后设置了相关的成员变量,但是没有对指针赋值。

由于直接在栈上创建对象,调用了默认构造(也就是啥都没干),该对象内部 可能会残留内存之前的值。指针部分也可能会被影响。
后续使用该对象时,调用者发现指针不为空,就对指针进行了相关操作,但是其实该指针是一个野指针。所以段错误。

使用前把这个结构体memset为0就好了。
由于是C的结构体,没有构造,容易出现这个问题。

posted @ 2020-09-07 15:08  loufand  阅读(109)  评论(0编辑  收藏  举报