式エバリュエータ エラー CXX0030ってわかりますか?

[戻る]
ふじ 2003/02/27(木) 19:31:41
expression not evaluatable

デバッガの式エバリュエータで式に対する値を記述どおりには取得できませんでした。プログラ
ムのアドレス空間以外のメモリを参照している可能性があります。たとえば、null ポインタが
参照されています。Windows NT と Windows 95 では、プログラムのアドレス空間以外のメモ
リをアクセスすることはできません。

かっこを使って式を書き換え、評価の順序を調整するといいでしょう。

このエラーは CAN0030 と同じものです。
=====================================
っていう説明で書いてあるけど、
    Cep = (float *) malloc(10 * 256 * 50 * 30 * sizeof(float));

    if (Cep == NULL)
  {
        printf("Sorry! Memory cannot be secured ! \n");
        exit(10);
  }    
と定義した変数で、
計算中、Access Violationを起こし、
Watchで見ると、
Cep[385530] : 式を評価出来ません。
            Access Violation
と出てきます。
Access Violationも何も、
頭の定義だと、10*256*50*30=3840000≒3.9MB>385530
として、余裕はあると思うのだけど。

他の変数でメモリ食われてると見るべきなのでしょうか?

wood 2003/02/27(木) 22:05:04
10*256*50*30*sizeof(float) だと思いますけど

hu 2003/02/28(金) 01:07:56
Cepの型はfloat *ですか?

cap 2003/02/28(金) 16:07:35
>Cep = (float *) malloc(10 * 256 * 50 * 30 * sizeof(float));
こう定義して、計算している部分でどのように使っているのですか?

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