こんにちは、あおぞらです。
研修で課題を行っています。
初歩的な質問で申し訳ないのですが、
検索などしてもよくわからないので投稿させて頂きいます。
下記のようなmain関数で、
配列に値を代入する事が出来ますが、
sin関数の計算式を代入していくと、途中でExcept_BRKがかかってしまうようです。
配列の上限、または、どのような他の制限がありますでしょうか。
以上よろしくお願いいたします。
#include "iodefine.h"#include "math.h"
void main(void){ int i; double data[360]; for(i=0;i<360;i++){ data[i] = i*1.0; <-実行できる } for(i=0;i<360;i++){ data[i] = sin((i/180.0)*3.14); <-途中で止まる } while(1){ ; }}
あおぞら さん、こんにちは。NoMaYです。> 宣言時に溢れている場合、コンパイラーでエラーなどのメッセージが出るのか、メモリに収まらないというリンクエラーが出ますよ。リンカで検出出来ないのは、スタックとヒープの場合ですね。なお、スタック使用量見積もりツールとしてCall Walkerというツールも用意されているのですが(CS+のメニューから起動可能)、うまく使うのは初学者に限らず難しいかなぁ、というところだったりします、、、
投稿ありがとうございます。
配列のサイズの件で、色々と知る事が出来ました。あとは、自分で原因追跡できる様にならなければと思いました。
以上、よろしくお願いいたします。