class X {
public:
X(int i) : num(i){}
int num;
};
void f(int i){
static X* px1 = new X(i);
X* px2 = new X(i);
cout<<px1->num;
cout<<px2->num<<' ';
};
void main(){
for (int i=0;i<5;i++)
f(i);
}
このコードは を出力しますが、静的ポインタが を使用して値を変更できない00 01 02 03 04
理由がよくわかりません。px1
operator new
また、このコードにはメモリリークの問題があります。delete
と一緒に使えますpx1
か? 両方のポインターを使用delete
すると、メモリ リークの問題が解決しますか?