使用win32并尝试按照组合框填充向量。 当然,我必须清除向量中的旧数据,但是当这样做时,vector-> clear();函数导致跳过switch语句中的剩余代码。
case CMB_DATA1:
mDataSet1Yaxis->clear();
for (unsigned int i = 1; i < mDataFile.mAllData.size(); i++)
{
mDataSet1Yaxis->push_back(mDataFile.mAllData[i][SendMessage(mUI->hDataSet1, CB_GETCURSEL, 0, 0)]);
}
cout << "iterated...";
break;
我不确定,但我想这与mUI-&gt; hDataSet1被认为是未使用有关? 这是什么意思,我该如何解决?
编辑1: 变量声明
OpenDataFile mDataFile = OpenDataFile();
vector<vector<SooberCell>> mAllData;
vector<SooberCell>* mDataSet1Yaxis;
编辑2: 我认为这里最大的问题源于mDataSet1Yaxis
答案 0 :(得分:2)
看来你已经创建了一个指向矢量的指针,但没有真正实例化矢量,所以你的指针是悬空的,因此你所经历的是未定义的行为。
也许是你的行:
vector<SooberCell>* mDataSet1Yaxis;
应改为:
vector<SooberCell>* mDataSet1Yaxis = new vector<SooberCell>();
答案 1 :(得分:0)
正如所指出的那样,我忘了初始化mDataSet1Yaxis
,因此在for循环中没有发生任何事情......