的示例代碼:如何在C使用指針的向量變量++
int main()
{
vector<string>* v;
v->push_back("hello");
v->push_back("world");
v->push_back("!");
for(vector<string>::iterator it = v->begin(); it != v->end(); it++)
{
cout << *it << endl;
}
return 0;
}
當我使用vector<string> v
,沒關係。
但是爲什麼當我使用vector<string>* v
時出現分段錯誤?
因爲你沒有閱讀你的編譯器的警告!它會告訴你,你使用了一個未初始化的變量('v')。 – kay
這是一個指針......它指向一些你應該分配的內存(如果你正在使用一個指向本地對象的指針,那麼你應該在堆上或堆棧中)。在這裏,所述指針是未初始化的,所以它可以指向任何地址 – Rerito
'v'是可以指向'std :: vector'的指針。但是,除非你將它指向一個實際的'std :: vector ',否則你無法做任何事情。 –
Quentin