dポイントプレゼントキャンペーン実施中!

配列の足し算のところでエラーが発生しました。
このような文の所です。

pLength[label]=pLength[label]+1.0;

コンパイル自体は問題なくできたのですが、いざ実行させると下のようなエラーメッセージが表示されました。いったい何がいけないのでしょうか?よろしくおねがいします。
---------------------------
デバッガ例外が発生
---------------------------
プロジェクト Project.exe が EAccessViolation クラスの例外を生成しました。
'モジュール 'Project.exe' のアドレス 00404BB2 でアドレス 0A45C614 に対する読み込み違反がおきました。'
プロセスは停止しています。再開するにはステップ実行または実行を選択してください。

A 回答 (4件)

>いったい何がいけないのでしょうか?


多分、labelが配列外参照を起こすような位置を指標していると思います。下に例を挙げます。
int a[2];
int i( a[2] ); // a[0] か a[1] ならOK

次点として考えられるのは、pLengthが異常な位置を指標してしまっている事です。ループ処理中にpLengthのアドレッシングを間違えている等が推測できます。
    • good
    • 0

多分、配列範囲外なのだと思います。


double a[100];
とかしておいて
a[100]なんてアクセスしていませんか
>1から100にして
double a[100];//要素数が100個
の時は、a[0]~a[99]です
    • good
    • 0

> pLengthはdouble型の配列です。

labelの範囲は1から100にしてfor文でまわしています。
> このような配列+整数みたいな書き方は別に間違っていませんよね?

書き方自体は間違っていません。
pLengthの要素数は101以上になっていますか?
    • good
    • 0

これだけでは正確なことは何もわかりません。



> pLength[label]=pLength[label]+1.0;

pLengthはポインタでしょうか?不正な値(NULLとか、ゴミとか、解放済みの領域とか)になっていませんか?
labelが配列の範囲を超えるような値(マイナスとか要素数以上)になったいませんか?

この回答への補足

そうですよね。

pLengthはdouble型の配列です。labelの範囲は1から100にしてfor文でまわしています。
このような配列+整数みたいな書き方は別に間違っていませんよね?

補足日時:2005/09/09 13:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!