MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問  (回答受付中)

[artisocモデル] 配列へのアクセスについて
質問者: j115028さん , 質問日時: 2018/10/30 17:27
お世話になっております。当方artisocでisingモデルを用いた卒業研究をしております。

配列へのアクセスでfor文を回した時に"無効なスタック位置です。(poke)"とエラーが返ってきます。配列はint型で取っていて、定数を代入しようとしています。ハイライトされる部分を見ても、その前にも同じようなfor文で同じような処理をしている為どこが指摘されているかもわかりません。
どうがこ教授ください。



▼ 全ての回答


差し支えなければ、エラーが発生する箇所、前後の部分のコードを見せてもらえますでしょうか?

回答者: ObiWan さん , 回答日時: 2018/10/30 17:33
dim config_at_init_time() as integer
for i as integer

for i=0 to Universe.NCITY-1
println("i:"&i&"→"&config_at_init_time(i))
next i

for i=0 to Universe.NCITY-1
config_at_init_time(i) = -1
next i

この文の下のfor文の代入部にハイライトがついてエラーとなっていしまいます。
上のfor文は中身の確認のためだけに挿入したものです。
Universe.NCITYは事前に5と設定しています。

回答者: j115028 さん , 回答日時: 2018/10/30 17:47
下記1行目のように、配列宣言時にのカッコに配列長(今回は5)を入れるとうまくいくようです。
ただ、カッコの中に変数(Universe.NCITY)を入れると私の環境ではエラーが出ます。。

dim config_at_init_time(5) as integer
dim i as integer

for i=0 to Universe.NCITY - 1
config_at_init_time(i) = -1
println("i:"&i&"→"&config_at_init_time(i))
next i

回答者: tomo12 さん , 回答日時: 2018/10/31 16:09
お二方とも回答ありがとうござます。私はまだまだこのソフトになれておらず試行錯誤を繰り返しているのですが、私の環境下でも定数を入れるとうまく動作はします。しかし、こちらのソフトウェアではローカル変数やグローバル変数を配列の要素数として宣言時に初期化することはできないのですか?初歩的な質問で申し訳ないです。

回答者: j115028 さん , 回答日時: 2018/11/01 16:20



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )