0

写了一个小程序来测试向量,我不明白为什么会崩溃,有人可以帮忙吗?

#include <iostream>
#include <algorithm>
#include <vector>

void print(int* i)
{
        std::cout << i << std::endl;
}

int main()
{
        std::vector<int*>* intPtr;

        intPtr->push_back(new int(1));
        intPtr->push_back(new int(2));
        intPtr->push_back(new int(3));

        std::for_each(intPtr->begin(), intPtr->end(), print);
}

现在忽略内存泄漏,这只是一个简单的例子。

4

3 回答 3

2
std::vector<int*> intPtr; // no need to make this a pointer.
于 2013-03-13T01:14:06.047 回答
1

你忘了初始化intPtr。尝试将该行更改为:

std::vector<int*>* intPtr = new std::vector<int*>;
于 2013-03-13T01:07:02.483 回答
0

你应该像这样初始化它:

std::vector<int*> *intPtr = new vector<int*>();
于 2013-03-13T03:14:57.640 回答