VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/02/13(Mon) 12:56
投稿者demontaki
URL
タイトルRe^12: 動的に2次元配列

お久しぶりです。
demontakiです。

おせっかいとも思いましたが、
返信させていただきます。

まず、gtさんのコメントについてですが
>実際に拡張していないようですね、
>ReDim Preserve itm(10)を宣言したのに、
>実際はitm(2)ままになっているようです。
構造体宣言されたものを再定義する場合、
一次元目のみを再定義すると一次元目の要素数は10となっているにもかかわらず
増加した要素(この場合3〜10のこと)の二次元目には何も設定されていない状態となります。
UBound(itm())・・・10となる
UBound(itm(2).itm())・・・0となる
UBound(itm(10).itm())・・・エラーとなる
このため二次元目を再定義して、増加した要素にも二次元目の設定をしてあげる必要があります。

もさんのコメントについてですが
> ※hoge型の要素itmの再確保方法も書いてるし、hoge型の配列itmの再確保方法も書いてるし…
>  何か問題あったのかな…
gtさんが間違われた点としては
hoge型の配列の拡張の記述の後に一次元目の記述しかなかったからではないでしょうか?
たしかに記述されたソースを私も最初は確認のためソースをそのまま使用しましたが
前半にあるhoge型の配列の確保とhoge型の配列の要素.itm()の確保の記述を見て
気づきましたし、理解力の差もありますし人に教えるのは難しいですね・・・

以上


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -