我定义了一个CObArray变量m_major1存进数据后再调用里面的数据就发生内存错误, 详细情况如下:
答案:2 悬赏:60 手机版
解决时间 2021-04-12 01:28
- 提问者网友:回忆在搜索
- 2021-04-11 14:11
我在视图类内向m_major1存进了一个类CStuInfo stu1(dlg.m_name,dlg.m_NO,str,dlg.m_birth,dlg.m_school,dlg.m_special);
然后再文档类里面CStuInfo*p=(CStuInfo*)m_major1.GetAt(0);
然后输出p->m_name出现错误,然而在视图类里面输出p->m_name却是正确的,
我很郁闷,最后在文档类的析构函数里面
for(i=0;i delete m_major1.GetAt(i);
m_major1.RemoveAll();
又发生内存错误,我查看了m_major1的内存发现里面是一些不认识的符号,
CObArray对[]不是进行了重载吗,然而用m_major1[i]编译器却又不认识,我更郁闷
哪位大侠能不能告诉我这是怎么了,到底哪里出现了错误。
最佳答案
- 五星知识达人网友:撞了怀
- 2021-04-11 15:51
CStuInfo 不会是在线程堆栈中定义的吧?
看你的症状就是传给 m_major1 的 p 指针无效。指针如果指向堆栈内存的话,当心堆栈内存被销毁了(定义 CStuInfo 的函数作用域),如果再使用m_major1 中存储的指针,怎样使用都是错的。
全部回答
a
stu是结构体变量不是指针,不能使用->符号。
stu是类型,也就是结构体的名字,只能用来定义结构体,所以c和d都是错误的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯