C++、Visual Studio 2010 で外部ライブラリから変数を定義しようとしています。これは、メイン関数の外に配置した場合にのみ機能します。
このコードはクラッシュします:
#include "StdAfx.h"
#include <ogdf\basic\Graph.h>
#include <ogdf\basic\graph_generators.h>
int main()
{
ogdf::Graph g;
ogdf::randomSimpleGraph(g, 10, 20);
return 0;
}
それは私に手に負えない例外を与えます:アクセス違反。ただし、メイン関数の外にある場合は、問題なく動作します。
#include "StdAfx.h"
#include <ogdf\basic\Graph.h>
#include <ogdf\basic\graph_generators.h>
ogdf::Graph g;
int main()
{
ogdf::randomSimpleGraph(g, 10, 20);
return 0;
}
どうすれば修正できますか?何らかのリンクの問題が原因であると思います。
編集:問題は変数の初期化ではないようです。アプリケーションが終了すると、例外がスローされます。
int main()
{
ogdf::Graph g; // No problem
ogdf::randomSimpleGraph(g, 10, 20); // No problem
int i; // No problem
std::cin>>i; // No problem
return 0; // Throws an exception after read i;
}
コール スタック:
出力は次のとおりです。graphs.exe の 0x0126788f での初回例外: 0xC0000005: アクセス違反の書き込み場所 0x00000000。
graphs.exe の 0x0126788f で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0x00000000。