MFC 程序运行时出现空指针

MFC程序在启动过程中对一个变量进行初始化,之后放在定时器里运行,第一次执行时正常的,从第二次开始就出现空指针。采用单步调试每次都进入反编译页面,按F5键再次进入定时器变量依然为空指针,请问大家有没有遇到过这样的问题,怎么解决的??

4个回答

具体要看程序。像数组越界之类的隐蔽bug也可能造成对变量的无意修改。

nodollars
Dennis・shi 谢谢您的回答,这个问题困扰我好几天了,我是在数组中对变量赋值,总共八个,后七个都没有问题,就是第一个反复出现空指针
大约 4 年之前 回复

你的数组是不是动态分配的,第一个内存分配了吗?你说的是第一个出问题,应该不是越界的问题,你的数组是结构体吗?这个具体要看代码。

wunaidepao
wunaidepao 回复Dennis・shi: 结构体里面有没有指针?要不要分配空间?
大约 4 年之前 回复
nodollars
Dennis・shi 谢谢您的回答,数组是类中的静态数组,是结构体。定义时为 static Mach m_mach[16]; Mach是结构体。
大约 4 年之前 回复

直接看结构体中的数据是什么,或者处理前判断一下是否为空指针。然后就是检查其他地方是不是有地方在修改它等,或者越界操作了

在修改该指针的地方打个断点或者log输出看看~

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问