坑位描述:指针未初始化(即未指向内存地址)就使用
入坑场景1:直接定制的指针未初始化,然后直接操作指针。
例如:
int *pInt = NULL;
*pInt = 1;
入坑场景2:在结构体中定义了指针变量,忘记初始化,但是后面却直接进行使用赋值。
typedef struct _TMP_STR
{
int iInt;
char *pChar;
int *pInt;
}TMP_STR;
TMP_STR strTmp;
strTmp.iInt = 1;
snprintf(strTmp.pChar,sizeof(strTmp.pChar),"%s","1234567");
心得:
(1)使用指针之前先要理清该指针指向的是哪个地址,若没有指向,则先指向,后操作。
(2)使用指针前请进行非空判断。另外要养成指针使用前判断非空的编程习惯。
写在尾部:
大家多总结,多分享,做事更高效,生活更美好,人生才会更有意义!总结了很多没有分享那没有多大意义。为此,捡起多年不更新的公众号,打算当成一个记录手册,把自己的技术所得,生活感悟和人生所获积极正能量,有意义的事记录下来,有兴趣的朋友可以关注我的公众号,一起做交流学习。