「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@599) [中] [議論中]
@599■ (#1916) 関数内で部品を動的生成すると落ちる - NON (2011-04-07 22:05) /高 未処理
【症状】関数内で部品を「ナデシコする」を用いて動的生成すると落ちる
【再現方法】
横個数は3
縦個数は3

実行
待機
●実行
  横で1から横個数まで繰り返す
    縦で1から縦個数まで繰り返す
      「ブロック{(横*100)+縦}とはイメージ
      その幅は20
      その高さは20
      そのXは10+横*21
      そのYは50+縦*21
      その0,0から20,20へ四角」をナデシコする
 待機

【要望】落ちないようにする
【バージョン】1.5332 + Windows7 SP1 32bit
【その他】
関数外だと落ちません。

(#1919) 「ナデシコする」での部品生成はあまり良くない - U D (2011-04-09 23:39) /中 議論中
「ナデシコする」での部品生成はあまり良くないです。
普通の動的生成の方が良いかと。

[よくある質問/GUI/部品の名前に数字を使いたい - ユーザーズ Wiki]
  http://nadesi.com/wiki/index.php?%A4%E8%A4%AF%A4%A2%A4%EB%BC%C1%CC%E4%2FGUI%2F%C9%F4%C9%CA%A4%CE%CC%BE%C1%B0%A4%CB%BF%F4%BB%FA%A4%F2%BB%C8%A4%A4%A4%BF%A4%A4

[ U D/文法・仕様/コーディング規約#「ナデシコする」は使わない - ユーザーズ Wiki]
  http://nadesi.com/wiki/index.php?U%20D%2F%CA%B8%CB%A1%A1%A6%BB%C5%CD%CD%2F%A5%B3%A1%BC%A5%C7%A5%A3%A5%F3%A5%B0%B5%AC%CC%F3#id26a744

(#1920) スレッドは残します - NON (2011-04-11 21:13) /中 議論中
なるほど。参考になります。

とはいえこれはコードがいい悪いの問題だけでなく、ソフトが落ちるのが問題だと思いますのでスレッドはこのまま残します。
命令がある以上使う人はいるでしょうし、「普通の」は内輪でしか通用しませんから。エラーならともかく落ちるとなると…

(#1931) 文法エラーのようです - じゅゐ (2011-07-17 15:50) /中 議論中
/*
文法エラーのようです。
次のようにコードを換えたら、数回に1回、エラーダイアログが表示されました。
おそらく、関数内で「~とは~」を使っているので、ローカル変数関連の仕様だと思います

[エラー] 評価式(1): 記述ミスがあります。プログラムを見直してください。2個の語句が無意味です。命令の未定義、プラグイン不足の可能性もあります。(「(変数生成)ブロック101」助詞「」)
[エラー] com.nadesi.exe.nakopad.temp.nako20.bak(16): 関数『ナデシコ』の実行中にエラーが起きました。アドレス 03C46357 でアドレス 0017DECA に対する書き込み違反がおきました。(関数)

*/

横個数は3
縦個数は3

実行
待機
●実行
  横で1から横個数まで繰り返す
    縦で1から縦個数まで繰り返す
      A=「ブロック{(横*100)+縦}とはイメージ
      その幅は20
      その高さは20
      そのXは10+横*21
      そのYは50+縦*21
      その0,0から20,20へ四角」
      Aを言う
      Aをナデシコする
 待機

(#1991) ナデシコするの中でのエラーに弱い? - うぇいく (2012-05-02 11:54) /中 議論中
統合環境上での実行で、エラーの後で明後日のアドレスに富んでいるのを見てもしやと思ったのですが、スタック領域不足ではないでしょうか。
vnakoのコンパイルオプションでスタックを倍にしたら、普通にエラーが表示されるようになりました。
文法上の構造でのネストが深い場合、スタックからあふれるようです。
(今回のケースでは、関数「実行」、関数定義、ループ、ループ、ナデシコする で、5階層になる)
スタックを大きくするのと併せて、ネストに上限を設けてスタックを壊す前に事前にエラーにする必要もありそうです。

(#1916)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能