ページ 11

String型の値が528バイト程度でコンパイラがクラッシュする

Posted: 2006年4月02日(日) 03:04
by ganas
こんにちは。
ゲームを作っていて、画面上に表示されるメッセージのプログラムを書いています。そのメッセージを代入するのには、String型が可変長であるため、使用していました。

(詳細に計算はしていないのでわかりませんが)半角(¥マークと英単語)と全角(日本語・英単語・数字問わず)が混じっている、合計528バイトになったメッセージを含めて、コンパイルしようとすると、コンパイラがクラッシュするようです(一定量までメッセージを(どれでもかまわず)削ると正常動作)。

これはバグでしょうか。

追記

Posted: 2006年4月02日(日) 12:08
by ganas
ActiveBasicはバージョンが 4.23.00 です。

Re: String型の値が528バイト程度でコンパイラがクラッシュする

Posted: 2006年4月02日(日) 17:21
by 淡幻星
あまり参考になる意見ではないかもしれませんが…。
このエラーはVer3.xの時代から、私の環境(Win2000)でもずっと起きてました。
(たぶんこちらも500Byte超えあたりでエラーしていた気がします)


仕様だと思って、長い文字列(目安256Byte)を扱うときは、
BytePtr+calloc+freeを使って明示的に動的確保してました。
もっとも、軽くString型の定義を見た感じでは、
扱う文字列の長さに上限は無いような組み方をしているようなので、
バグなのかもしれませんが…。


(ちなみに、Ver2.x時代は4KByteあたりでクラッシュしてました。
 なので、もともとString型は大容量に対しては落ちるもの、という認識でして、
 Ver3.x以降は「その上限が小さくなった」くらいに思ってスルーしてました^^;)