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 に答える