私は2つのクラスを含むプログラムを作った。基本クラスには、派生クラスのポインタオブジェクトが含まれます。次に、基本クラスのコンストラクタでポインタオブジェクトを初期化します。ベースクラスのメモリ割り当てエラーを修正するにはどうすればよいですか?
コンパイル時にマイコンパイラでエラーが表示されず、コンソールウィンドウが表示されたときにプログラムがクラッシュし、派生クラスのオブジェクトにエラーUNHANDLED EXCEPION BAD ALLOCATION
が与えられました。それを修正するために私は何をすべきですか? - 原因はおそらくです
class x;
class y
{
private:
x *objx; // here is the error
...........................
};
class x: public y
{
...........................
................
};
y::y()
{
objx=new x(); // bad allocation and the program crashes
// I have also tried this way by commenting objx=new x();
*objx=0; // but still the program crashes.
}
:あなたは、コンストラクタにnullにポインタを設定してみてくださいと実際のオブジェクトになるだろう方法のinitを作成することもできます。 – Tudor
これはどの言語ですか?それに応じてタグ付けする必要があります。 – jonsca