我正在嘗試學習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'元素指向的對象都需要手動釋放。爲了避免這種情況,請使用智能指針(或者根本不要使用指針)。 –