ハンドルされていない例外が発生しました
C言語の勉強をしていますが、初心者なものでなかなか思うようにできません。
Visual Studioを使って「lfit5」というプログラムを作っています。下にプログラムのmainを載せています。
int _tmain(int argc, _TCHAR* argv[])
{
int ma=2;
int mfit=2;
int ndata=4;
float m;
float s=0.0;
float *n;
float **covar;
float *chisq=&s;
void (*funcs)(float x[], float *afunc, int ma);
float x[4]={1,2,3,4};
float y[4]={0,5,15,24};
float sig[4]={1,1,1,1};
float a[2];
int ia[2];
char buf;
//chisq=0;
n=&m;
covar=&n;
funcs=orgfuncs;
lfit(x, y, sig, ndata, a, ia, ma, covar, chisq, funcs);
buf=getchar();
buf=getchar();
return 0;
}
ビルドはできたのですが、実行すると
lfit5.exe の 0x004127f4 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xccccccd0 に書き込み中にアクセス違反が発生しました。
というエラーメッセージが出ます。
最初は「coverが初期化されていない」というエラーが出ていて、
n=&m;
covar=&n;
等 を加えることで初期化のエラーは消えたのですが、次に上記のようなエラーメッセージが出始めました。
専門用語等解らないことも多いのですが、どうすればよういか解らず、御教授頂きたいです。
どうか宜しくお願い致します。
お礼
新しいPCにて環境を作り直した(Oracleなどバージョンが違う)らうまく動くようになりました。 環境の違いの細かい所まではみれなかったですが、 プログラムには問題はなかったみたいです。 みなさまありがとうございました。
補足
何度も回答ありがとう御座います。 >new演算子で ODatabaseクラスのオブジェクトを生成するのであれば >ODatabase *ZZZ; >ZZZ = new ODatabase; >と記述されると思うのですが。 neko3839様のおっしゃる通りです。 ZZZ = new ODatabase(); と書いてありました>< こちらの記載ミスでした;;