- 締切済み
Debug.exe実行時にWinMainCRTStartup()でエラーが発生する
WindowsXP VisualC++.net2003 で開発をしています。 VC上で実行すると問題なく実行できるのですが、Debugファイルから実行するとエラーが発生します。 エラーの発生場所は setSBUpLow() 行409+ 0x9となっています。 この関数はWinMainCRTStartup()で呼び出されています。この関数はAPIです。 Windowを初期化するときに自動的に呼ばれているようです。 自分のプログラムのどの部分でエラーが起こっているか調べたところ、クラスのコンストラクタ内で行っている次の処理が原因のようです。 int **test; test= new int*[10]; for(int i = 0; i < 10; i++){ test[i] = new int[10]; } この部分をコメントアウトするとエラーが発生しなくなります。 new演算子でメモリを確保しているときにエラーが発生 しているようです。 なぜ、Debug.exeで実行したときだけ エラーがでるのでしょうか? また、エラーが発生しないようにするにはどうすればいいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sha-girl
- ベストアンサー率52% (430/816)
回答No.1
お礼
回答ありがとうございました。 説明が悪かったようです。 Debug版とRelease版ともに起動した瞬間にエラーがでていました。実行できたのはVC++上で実行したときだけです。 いろいろ調べてみたら、newしているところが多いと実行できなくなっていました。そこで、メモリの使用量が多すぎるのかもとおもい、宣言しているところを見直したところ、 char *wkStr = new char; とcharの大きさを指定せずに宣言している箇所があり、 char *wkStr = new char[10]; と宣言を直したら実行できるようになりました。