プロが教えるわが家の防犯対策術!

はじめまして。

この度、ちょっとした計算プログラムを作ることになったのですが、
タイトルにもありますように、
『動的に作成した構造体配列の中に、さらに動的に構造体配列を作る』
方法がわからずに困っています。
実際には下記のようにプログラムしたいのですが...

-------------------------------------------------
'a'の構造体の中に作られる'b'の配列数は、下記のように
'a'の配列の番号により違い、また'a'の配列数も最初の段階では未定です。

構造体'a'←配列数未定 構造体'b'←配列数未定
a[0]-----b[0]
 |    b[1]
 |    b[2]
 |
a[1]-----b[0]
 |    b[1]
 |
a[2]-----b[0]
 |    b[1]
 .    b[2]
 .    b[3]
 .

-------------------------------------------------
new演算子で'a'の配列は作れたのですが、その中の'b'の数の分だけ
配列を動的に作成する方法がわかりませんでした。

最初は'b'の配列を多めに取って計算すればよいと思っていましたが、
計算過程で'b'の配列数が10000を越えてしまう場合があり、
また'b'の構造体のサイズも大きめなので、断念せざるをえませんでした。

どなたか、このように配列を作成する方法を知っている方がいましたら、
是非教えていただきたいです。

下手な説明ですいません。

A 回答 (2件)

struct typDataB{


 long lData1;
 long lData2;
};

struct typDataA{
 typDataB* uDataB;
};

void main()
{
 typDataA* uDataA;
 uDataA = new typDataA [10];
 uDataA[0].uDataB = new typDataB [20];
 uDataA[0].uDataB[2].lData1=0;
 uDataA[0].uDataB[2].lData2=2;
}
では、外しているかも

この回答への補足

回答ありがとうございました。

ですが、またしても問題が発生してしまいました。
上でいうところの'uDataA'の配列を途中で増やす必要が出てきてしまいました。
もし、動的に配列を増やすことができるようであれば、そのやり方も教えていただきたいです。

よろしくお願いいたします。

補足日時:2001/07/12 23:28
    • good
    • 0

構造体'a'の中で配列bを直接指定せずにポインタ型で指定し、


構造体'b'の宣言は構造体'a'の外に出し、別立てにしたらいかがですか。

つまり、a[0]の次にb[0],b[1],...,b[a[0]],を配置し、
その次にa[1]をメモリ配置しようとしても位置が決まらないわけですから。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!