这是我的代码:
vector<int *> *ptr;
int *tab = new int(20);
ptr->push_back(tab);
cout << *(ptr->at(0)) << endl;
我想在屏幕上打印20,但是我遇到了分段错误。 当我只使用
时vector<int *> ptr;
它打印出来很好。我只是通过这样做轻松得到结果:
*ptr.at(0);
但我想使用指针而不是简单的变量。 我可以有一些启示吗?
由于
答案 0 :(得分:-1)
暂时忽略使用指针...
vector<int *> *ptr;
int *tab = new int(20);
ptr->push_back(tab);
是一个问题,因为您尚未为ptr
分配内存。
使用:
// Allocate memory for ptr first.
vector<int *>* ptr = new vector<int*>;
int *tab = new int(20);
ptr->push_back(tab);