我正在尝试学习C++,并且我想用一个简单的程序来初始化一个X实例的向量作为类成员,但是我遇到了分段错误......你能帮忙吗?在C++中操作矢量时出现分段错误
#include <iostream>
#include <vector>
class X {
int _x;
public:
X(int i) { _x = i; }
void print() { std::cout << this->_x << std::endl; }
void xAdd() { _x++; }
};
class Y {
std::vector<X*> _x;
public:
Y(int size) : _x(size) {
for (int i = 0; i < size; ++i) _x.push_back(new X(1));
}
void printAll() {
for(unsigned int i = 0; i < _x.size()-1; i++) {
_x[i]->print();
}
}
};
int main(){
Y *y = new Y(5);
y->printAll();
return 0;
}
您的课程旨在泄漏记忆。所有由'_X'元素指向的对象都需要手动释放。为了避免这种情况,请使用智能指针(或者根本不要使用指针)。 –