私は assimp と C++ をいじっていて、ファイルからシーンをロードする簡単な関数を書きました。しかし、ポインタを返そうとするとオブジェクトがめちゃくちゃになってしまい、メンバデータを取得しようとするとアクセス違反になってしまいます。このスニペットは、ケースを示す必要があります。
const aiScene* ResManager::loadScene(const std::string& pFile)
{
Assimp::Importer importer;
const aiScene* scene = importer.ReadFile(pFile, aiProcessPreset_TargetRealtime_MaxQuality);
if(!scene)
{
printf("%s\n", importer.GetErrorString());
return 0;
}
// If I break the debug here, 'scene' is valid
return scene;
}
void ResManager::loadFromFile(const std::string& pFile)
{
const aiScene* scn = loadScene(pFile);
// If I break the debug here, 'scn' contains gibberish
}
ここで、ポインターや const などについて重要なことを見逃していると思います。何か案は?