疑問を以下のプログラムを例に説明します.何か知っている方がいましたら是非,参考にさせて頂きたいと考えております.
以下では,Testクラスを宣言し,メインでそのオブジェクトを作成しているのですが,
この変数「t1」はスタック領域の変数でしょうか?t2はヒープで,newで取得したので,deleteの必要があると思いますが・・・.またもしスタックだとすると,そのフィールドである,x,y,zはヒープということになるのでしょうか?これをどのように調べたり,又は知ることができるのか分かりません.
class Test{
private:
int *x;
int *y;
int *z;
int size;
Test(){}
Test(int i){
this.size=i;
this.x = new int[this.size];
this.y = new int[this.size];
this.z = new int[this.size];
for(int k=0;k<this.size;k++){
this.x[k] = 0;
this.y[k] = 0;
this.z[k] = 0;
}
}
~Test(){
delete[] x;
delete[] y;
delete[] z;
}
};
void main(){
Test t1(100);
Test t2 = new Test(100);
//以降でその他処理など
return;
}