scope de l'operateur new ?
Salut,
J'ai un probleme d'allocation de memoire qui provoque un segmentation fault a l'execution.
Le programme est structure comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
class Y{
public:
void fillVector();
void showVector();
private:
std::vector <int> v;
};
void Y::fillVector(){
v.resize(10);
v[1]=1;
}
void Y::showVector(){
cout << v [1];
}
class X{
public:
X();
private:
Y* y;
void setY();
};
X::X(){
Y* y = new Y;
setY();
}
void X::setY(){
y->fillVector();
y->showVector();
}
int main(){
X x;
return 0;
} |
Le probleme intervient lors de l'appel de showVector() dans la methode setY().
Il semble que la memoire allouee pour v a ete liberee...je ne comprends pas trop car v devrait exister tout au long du scope de y ( c.a.d. constructeur de x) ?
merci de votre aide...