0

C++ エラーをスローするコードの一部を次に示します。

IDlist->push_back(lex->getCurrentToken());

IDList は、次のように定義されるベクトルです。

std::vector<Token*>* IDlist;

そのコード行で Token オブジェクトをプッシュできないのはなぜですか? ありがとう。

編集:

これを試すと:

Token* t = lex->getCurrentToken();
IDlist->push_back(t);

同じエラーが発生します。ベクターへのプッシュが試行されたときに発生します。

4

1 に答える 1

2
std::vector<Token*>* IDlist;

IDlistは、ベクトルを指すポインターであり、によって割り当てられていませんnew。IDlistを使用する前に、IDlistを割り当てる必要があります。

IDlist = new  std::vector<Token*>();

しかし、ベクトルへのポインタを使用する意味は何ですか?IDlistを変数として宣言するだけです。

std::vector<Token*> IDlist;
Token* t = lex->getCurrentToken();
IDlist.push_back(t);
于 2013-02-14T02:23:56.723 に答える