いつもお世話になっておりますKonです。よろしくお願いします。
PCはWinXP、Visual C++ 2005 Express Edition を使用しています。
Windowsフォームアプリケーション でプロジェクトを作成しています。
Fruit というクラスの double Apple という変数を
3つ要素のある配列にしたいです。
public ref class Fruit
{
public:
array<double>^ Apple;
Fruit(){
Apple = gcnew array<double>(3){ 0, 1, 2};
};
}
void Main(){
double test;
Fruit fru
test = fru.Apple[9];
}
Appleは3つと指定したのに、9つ目を書いてもエラーになりません。
なぜ、配列を3つと指定できないのでしょうか?
> 9つ目を書いてもエラーになりません。
コンパイル時にはエラーにならんでしょうね。
実行時はどうですか?
> なぜ、配列を3つと指定できないのでしょうか?
int N = ユーザが入力したテキトーな大きさ;
Apple = gcnew array<double>(N){ 0, 1, 2};
だったらコンパイル時にはチェックのしようがないでしょう?
> Appleは3つと指定したのに、9つ目を書いてもエラーになりません。
実行できますか?
コンパイル時に見つけるのは不可能です。
int n[10];
int index;
scanf(%d, &index);
printf(%d\n, n[index]);
みたいにインデックスを変数にした場合、実行しないとエラー検出できませんし。
επιστημη さん、Blueさんいつもありがとうございます。
実行時には、エラーになりました;;;;
”9つ目は無いよ”ってエラーが出そうな気がしたので、
記述が間違っているのではと心配になったのですが、
コンパイルでは、チェックできないんですね。
ありがとうございました。m(_ _)m