c ++:跳过for循环

时间:2014-12-17 14:23:58

标签: c++ winapi pointers

使用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

2 个答案:

答案 0 :(得分:2)

看来你已经创建了一个指向矢量的指针,但没有真正实例化矢量,所以你的指针是悬空的,因此你所经历的是未定义的行为。

也许是你的行:

vector<SooberCell>* mDataSet1Yaxis;

应改为:

vector<SooberCell>* mDataSet1Yaxis = new vector<SooberCell>();

答案 1 :(得分:0)

正如所指出的那样,我忘了初始化mDataSet1Yaxis,因此在for循环中没有发生任何事情......