動的配列のメモリ領域確保失敗はありますか?

解決


ド素人  2004-10-20 10:16:44  No: 86112  IP: [192.*.*.*]

例えば、Dim A() as Integer と仮宣言します。
次に、ReDim A(任意の数)で宣言し直した時に、
メモリ領域確保失敗することはありますか?
また、失敗したときはどのようなエラーが起こるのでしょうか?

回答宜しくお願いしますm(_ _)m

編集 削除
java.lang.Nullpo  2004-10-20 10:39:51  No: 86113  IP: [192.*.*.*]

「エラー」と表現されましたので、VB6以前と仮定させて頂きます。
通常は失敗することなどありえません。

ReDim A(負の数) ' -> インデックスが有効範囲でない。
ReDim A(巨大な数) ' -> メモリが足らない

編集 削除
raki  URL  2004-10-20 10:42:57  No: 86114  IP: [192.*.*.*]

もちろん失敗することもあります。
これについては過去ログを参照してください。
確か過去1ヶ月以内に同じ質問が出ていたはずです。
配列をどこまで宣言できるのか、というような質問で。

失敗したときのエラーに関しては議論されていなかったような
気がしますが、これに関しては御自分で試されたほうが早いかと。

編集 削除
ねろ  2004-10-20 10:48:14  No: 86115  IP: [192.*.*.*]

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200410/04100066.txt
ここに書きましたが
「実行時エラー'7' メモリーが不足しています。」
と言うエラーが出ます。

編集 削除
ド素人  2004-10-20 10:53:06  No: 86116  IP: [192.*.*.*]

>java.lang.Nullpoさま

回答ありがとうございました。
VB6.0ということを明記することを忘れてました。申し訳ありません。
Cのmallocの失敗みたいなことを想定する必要はないということでしょうか?

編集 削除
ド素人  2004-10-20 10:54:45  No: 86117  IP: [192.*.*.*]

>rakiさま

回答ありがとうございました。
過去ログを参照してみます。

編集 削除
ド素人  2004-10-20 10:58:18  No: 86118  IP: [192.*.*.*]

>ねろさま

回答ありがとうございました。
URLが私の質問ページになっています(^^;
正しいURLを教えていただければ幸いです。

編集 削除
ねろ  2004-10-20 11:04:00  No: 86119  IP: [192.*.*.*]

ああ〜  リンク先を間違えた。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200409/04090048.txt
ここです。
基本的には、メモリー確保はOSの仕事ですか。
OSの環境にもよりますが、メモリーが足りなくなるとOSは
ハードディスク上にスワップ領域を確保して、メモリーの内容を
待避します。従って大きいメモリー領域を確保すると、
「スワップ領域が足りません」等と言うエラーが出る可能性は
有りますが、「メモリーが不足しています」と言うエラーは
出ないのではと思いますが、なぜか出ます。
ただしスワップ領域が足りなくなるほどのメモリー確保をしたことが
無いのでどのようなエラーメッセージが出るかは解りません。

編集 削除
ド素人  2004-10-20 11:14:11  No: 86120  IP: [192.*.*.*]

>ねろさま、みなさま

回答ありがとうございました。
メモリと配列に関する質問から色々な情報が出てきました。
これらの情報から試行錯誤してみます(´ー`)

配列の最大バイト数の上限は?
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200410/04100040.txt

テキストファイルから一行ずつ表示させるには?
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200409/04090048.txt

配列の要素数の限界はいくつ?
http://madia.world.coocan.jp/vb/vb_bbs/200306_03060015.html

編集 削除
ねろ  2004-10-20 11:29:35  No: 86121  IP: [192.*.*.*]

ありゃ。
配列の要素の限界と、確保するメモリー領域の限界は別物ですよ。
配列の要素の限界はVBの制限事項によって。
確保するメモリー領域の限界はOSや使用しているハードウェアーによります。

編集 削除
ド素人  2004-10-22 16:35:12  No: 86122  IP: [192.*.*.*]

>ねろさま

返信をスルーしていたみたいです(^^;
申し訳ございませんm(_ _)m

メモリ領域のエラーについては他の現象を調べている最中です。
質問が具体的になったときに、また宜しくお願いいたしますm(_ _)m

編集 削除