我写了一个小程序来测试向量,我不明白为什么它会崩溃,有人能帮我吗?
#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);
}
现在先忽略内存泄漏,这只是一个简单的例子。
发布于 2013-03-13 09:14:06
std::vector<int*> intPtr; // no need to make this a pointer.
发布于 2013-03-13 09:07:02
您忘记了初始化intPtr
。尝试将该行更改为:
std::vector<int*>* intPtr = new std::vector<int*>;
发布于 2013-03-13 11:14:58
你应该这样初始化它:
std::vector<int*> *intPtr = new vector<int*>();
https://stackoverflow.com/questions/15375199
复制相似问题