typedef struct /*HMM 型宣言及び構造体の宣言*/
{
double Re;
double Im;
}complex;
complex *data0;
complex *data1;
data0=(complex *)malloc(sizeof(xomplex)*5);
data1=(complex *)malloc(sizeof(xomplex)*5);
これで、アクセス・バイオレーション・エラー
これ'だけ'で?
確保した領域にアクセスしていないのに、アクセスバイオレーション?
# 信じられない...
> data0=(complex *)malloc(sizeof(xomplex)*5);
> data1=(complex *)malloc(sizeof(xomplex)*5);
これの xomplex が何者なのかわかりません。
typoでしょう。そうでなかったらコンパイルエラーのはず。
すみません。
ミスタイプでした。
data0=(complex *)malloc(sizeof(complex)*5);
data1=(complex *)malloc(sizeof(complex)*5);
でした。
それにしても、
なんで、ここでACCESS VIOLATIONが
#include <cstdlib>
#include <iostream>
typedef struct {
double Re;
double Im;
} complex;
int main() {
complex *data0 = 0;
complex *data1 = 0;
data0=(complex *)malloc(sizeof(complex)*5);
data1=(complex *)malloc(sizeof(complex)*5);
std::cout << (void*)data0 << std::endl;
std::cout << (void*)data1 << std::endl;
free(data0);
free(data1);
return 0;
}
--- 実行結果
00341E60
00340F60
...VC6ではなんの問題もなくコンパイル/実行できました。
ふじさん的には、なぜ提示された個所でアクセス・バイオレーション・エラーと
判断されたんでしょう?
おそらく、何らかの根拠があるとは思うんですが。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200303/03030032.txt
少し前の上記スレッドで、エラー箇所を探す方法を尋ねていましたが、これでAccess
Violation
の箇所を特定したってことでしょうか?