ページ 11

配列変数定義の上限値について

Posted: 2005年9月05日(月) 22:10
by omasu
お世話になります。

アクティブベーシック Ver.2.62では
「Dim a$(1000000) As String」の1行を
コンパイル可能ですが、

アクティブベーシック Ver.4.1.β2では
「Dim a$(1034) As String」の1行の
コンパイルまでは可能ですが

「Dim a$(1035) As String」は
メモリ関連のエラーメッセージが表示され
コンパイルができません。

今後のベーシックではポインタ関連の機能を使わなければ、
配列変数(数万件レベル)の処理は不可能なのでしょうか?

Re: 配列変数定義の上限値について

Posted: 2005年9月06日(火) 08:29
by Sinryow
今までもこの問題は何度も持ち上がっています。
コンパイラのバグの可能性が高いですが,山本さんからこの件について今まで回答があったことは(確か)なかったです。
恐らく山本さんにとっても原因不明なのでしょう。

とりあえずは,ポインタを使って対応するしかないでしょう。

Posted: 2005年9月14日(水) 11:51
by マティ
自分の環境でも単純に宣言すると、1018件でエラーになり、1030件でコンパイラが応答しなくなりました。
あまり早くはないですが、TYPEで宣言すると100万件でもOKでした。

コード: 全て選択


Const xMax=1000000
Type xxx
	a As String
End Type
dim t[xMax] as xxx
dim i As DWord
'
For i=0 To xMax
	t.a = Str$(i)
Next
MsgBox 0, "Max=" & t[xMax].a

Posted: 2005年9月14日(水) 19:48
by イグトランス
私の場合は、Classでも要素数が大きくなるとおちます。
ただClassならNewで回避できるから良いのですが。

#だからInterfaceのトピックでオペレータオーバーロードを導入してStringをクラスにしてほしいと言ったわけです。