std :: vector崩溃?

时间:2013-03-13 01:02:35

标签: c++ pointers stdvector

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

#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);
}

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

3 个答案:

答案 0 :(得分:2)

std::vector<int*> intPtr; // no need to make this a pointer.

答案 1 :(得分:1)

您忘记初始化intPtr。尝试将该行更改为:

std::vector<int*>* intPtr = new std::vector<int*>;

答案 2 :(得分:0)

你应该像这样初始化它:

std::vector<int*> *intPtr = new vector<int*>();