基底クラスclass1と派生クラスclass2でnewを使って同じサイズの2次元配列pとqを作ったのですが、メモリ内の同じ場所を参照してるみたいで、class2の配列qで配列の中身を書き換えたら、class1の配列pの中身も書き換えられているんですが、対処法があれば教えてください。
class class1{
protected:
int** p;
public:
class1(int n)
{
int i;
*p=new int[n];
for(i=0;i<n;i++){
p[i]=new int[2];
}
}
:
:
};
class class2 : public class1{
int** q;
public:
class2(int n)
{
int i;
*q=new int[n];
for(i=0;i<n;i++){
q[i]=new int[2];
}
}
:
:
};
No.1
- 回答日時:
最初にclass1::pとclass2::q(ポインタのポインタが指している先)がまだ不定なのにnew int[n]でアドレスをセットしているように見受けられますけど?
pとqの値(アドレス)によってはフリーズしちゃうと思います。
ためしてないけど。。。
No.2ベストアンサー
- 回答日時:
こうだと思う。
class CClassA
{
protected:
int** p;
int _nCntA;
public:
CClassA( int n ) {
_nCntA = n;
p = new int*[ n ]; // ポインタ配列を確保
for( int ii = 0; ii < n; ii++ ){
p[ ii ] = new int[ _nCntA ];
}
}
// デストラクタは省略
};
class CClassB : public CClassA
{
protected:
int** q;
public:
CClassB( int n ) : CClassA( n ) {
q = new int*[ n ]; // ポインタ配列を確保
for( int ii = 0; ii < n; ii++ ){
q[ ii ] = new int[ 2 ];
}
}
// デストラクタは省略
};
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- C言語・C++・C# C言語で再起関数とポインタを用いて文字列反転をする方法がわかりません。 4 2023/04/29 20:32
- C言語・C++・C# クラスのメンバ変数を基準に並べ替えをしたい 5 2022/12/25 17:40
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java 配列<選挙> 4 2023/07/31 15:07
- 英語 節を列挙する例示表現について 2 2022/08/15 13:52
- Java Java・配列の問題です。 int 「」nums = new int「5」 ⤴︎ この5の事を言葉で 2 2023/06/21 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArduinoのジャイロモジュールMP...
-
C言語をコンパイルするとコンピ...
-
あなたは、Excelはどうやって学...
-
C言語 列挙型(enum型)変数について
-
大量のデータを読み込んで表示...
-
C言語初心者 構造体 課題について
-
gccを行ってもexeファイルが生...
-
VisualStudio2022でC言語プログ...
-
C言語初心者 構造体 課題について
-
mallocについて
-
プログラミングについての質問...
-
scipy っていうのをいれようと...
-
Int('1234') で、strをかんたん...
-
License='MIT' ってなんでmitな...
-
どなたかこのプログラミングを...
-
卒業研究でよく分からないとこ...
-
c言語
-
終端記号、非終端記号とは
-
C言語について。
-
chatgptでつくってもらったコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccを行ってもexeファイルが生...
-
あなたは、Excelはどうやって学...
-
WindowsのCapsLock(キャップス...
-
質問失礼します。 プログラム言...
-
double型が正常に認識されてい...
-
Notepad++の関数リスト表示でC...
-
どちのほうがすきですか?
-
Stuck
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
C言語の関数と配列に関する質問
-
C言語って古いですか?
-
Linuxでの開発環境構築や設定の...
-
Bitcoin、BTCはブロックチェー...
-
C++6.0でのresource.hについて
-
MACで動く実行ファイルをWindow...
-
C言語 列挙型(enum型)変数について
-
c言語
-
大量のデータを読み込んで表示...
-
こんなことてしますか??
おすすめ情報