关于“引发了异常: 写入访问权限冲突。 **step_end** 是 nullptr”的问题

C++语言 码拜 7年前 (2017-05-05) 11407次浏览
关于“引发了异常: 写入访问权限冲突。 **step_end** 是 nullptr”的问题关于“引发了异常: 写入访问权限冲突。 **step_end** 是 nullptr”的问题关于“引发了异常: 写入访问权限冲突。 **step_end** 是 nullptr”的问题
问题显示是写入访问权限冲突,不知道是不是本人开辟结构体数组的时候分配内存不对还是什么,讨教各位高手[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/19.gif]img]
解决方案

5

不知道你的Init_step_q是怎么初始化的,错误提示很明显,你的program[i].stepend->next已经不存在了,空指针赋值肯定会有非法内存访问错误。

5

下断点查看program数组里面的指针能否为空,往上跟

20

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止

10

没看到完整代码。胡乱猜测一下
在for循环中的En_Step_Q()函数调用时,第三个参数program[i].stepend这个指针可能是空指针。也就是说,可能在for循环之前调用
Init_Step_Q()函数对program[i].stepend进行初始化时,这个指针指向的是一个局部变量的地址,当Init_Step_Q()函数结束后,该局部变量的地址就无效了,导致program[i].stepend是一个无效指针。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于“引发了异常: 写入访问权限冲突。 **step_end** 是 nullptr”的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)