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

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
omasu
記事: 96
登録日時: 2005年9月02日(金) 22:15
連絡する:

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

#1 投稿記事 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」は
メモリ関連のエラーメッセージが表示され
コンパイルができません。

今後のベーシックではポインタ関連の機能を使わなければ、
配列変数(数万件レベル)の処理は不可能なのでしょうか?
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

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

#2 投稿記事 by Sinryow »

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

とりあえずは,ポインタを使って対応するしかないでしょう。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
マティ
記事: 161
登録日時: 2005年8月23日(火) 00:15
お住まい: 沖縄県
連絡する:

#3 投稿記事 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
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#4 投稿記事 by イグトランス »

私の場合は、Classでも要素数が大きくなるとおちます。
ただClassならNewで回避できるから良いのですが。

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