2 raspberrymonster RaspberryMonster 于 2015.06.03 17:34 提问

为什么类中的数组size会突然变大
mfc

vector ans; //类中的public成员变量

先在一个函数中为ans push_back了很多值 这里的size是正常的因为
for (int i = 0; i < ans.size(); i++)
m_list.AddString(ans[i]->getNum());
可以正常执行,在listbox上可以看到正确的运行结果
但是在另一个按钮响应函数中执行下列语句时则一直提示 遇到不适当的参数

void searchInfo::OnLbnDblclkList1()
{
// TODO: 在此添加控件通知处理程序代码
single *cur = ans[m_list.GetCurSel()];
infoDlg dlg(cur);
dlg.DoModal();
}
在调试的时候发现数组的size本来是3的 在赋值语句时突然变成了很大的数,其中的值当然也都变了
应该就是因此导致了错误。
实在是百思不得其解

6个回答

RaspberryMonster
RaspberryMonster   2015.06.06 13:45
已采纳

自己解决了,整个传数据的过程都是错的,对mfc的结构才有个初步了解,要是有人遇到跟我一样的问题可以私信我解答

lx624909677
lx624909677   Ds   Rxr 2015.06.03 17:37

单步调试看下ans什么时候有数据添加的,m_list.GetCurSel()这里获得的数值是多少,size变了一定是有数据添加进去才会变

RaspberryMonster
RaspberryMonster getcursel获得的值是正常的,选择第一个的话就是0,ans突变就是在那个赋值语句上,即使直接把ans[m_list.GetCurSel()]写到参数里也是一样
2 年多之前 回复
weixin_28717289
weixin_28717289   2015.06.03 17:51

是不是每次存入数据前没有清楚原有数据

RaspberryMonster
RaspberryMonster 清除了的 写了循环的pop_back清空向量
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.06.03 19:34

先看你的数据是否正确插入了,其次是不是你调试的时候没有关闭优化,导致查看结果不准确

u012377333
u012377333   Rxr 2015.06.03 20:19

额,单步调试一下,看一下哪一步出现了问题

datou431
datou431   Rxr 2015.06.18 11:11

是不是每次存入数据前没有清楚原有数据

Csdn user default icon
上传中...
上传图片
插入图片