マネージ配列の個数

[戻る]
Kon 2008/02/22(金) 17:53:11
いつもお世話になっております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つと指定できないのでしょうか?

επιστημη [HomePage] 2008/02/22(金) 17:58:17
> 9つ目を書いてもエラーになりません。

コンパイル時にはエラーにならんでしょうね。
実行時はどうですか?

> なぜ、配列を3つと指定できないのでしょうか?

int N = ユーザが入力したテキトーな大きさ;
Apple = gcnew array<double>(N){ 0, 1, 2};

だったらコンパイル時にはチェックのしようがないでしょう?

Blue 2008/02/22(金) 18:00:38
> Appleは3つと指定したのに、9つ目を書いてもエラーになりません。
実行できますか?

コンパイル時に見つけるのは不可能です。

int n[10];
int index;
scanf("%d", &index);
printf("%d\n", n[index]);

みたいにインデックスを変数にした場合、実行しないとエラー検出できませんし。

Kon 2008/02/22(金) 18:08:17
[[解決]]
επιστημη さん、Blueさんいつもありがとうございます。

実行時には、エラーになりました;;;;
”9つ目は無いよ”ってエラーが出そうな気がしたので、
記述が間違っているのではと心配になったのですが、
コンパイルでは、チェックできないんですね。

ありがとうございました。m(_ _)m

古いスレッドには追加発言できません。