2011-08-09 14 views
1

私はクラスで宣言したconst struct aiScene *scene;を持っています。C++ const構造体ポインタにアクセスできない

私がscene = importer.ReadFile(file, aiProcess_Triangulate);を定義する関数では、シーン構造体にアクセスできます。例えば、scene->mNumMeshesを印刷することができます。

問題は、シーンが別の機能からアクセスできないという問題です。 scene->mNumMeshesを印刷しようとすると、毎回異なる番号が印刷されます(メモリアドレス?)。

クラス内のすべての機能からシーンにアクセスできるようにするにはどうすればよいですか?

+3

'scene'を定義する関数を表示できますか? –

答えて

2

importer.ReadFileに何が入っているのかわからないのは確かではありませんが、importer.ReadFileはスタック上の構造体へのポインタを返すことが良いでしょう。それが戻った後、構造はすぐに他のデータによって上書きされます。最初の実験では、他の何かがその場所を再利用する前にそれを得ることができて幸運かもしれません。

ReadFileがローカルではなくヒープ割り当て構造を返すことを確認してください。

+0

からAssimpライブラリdoc:http://assimp.sourceforge.net/lib_html/class_assimp_1_1_importer.html#174418ab41d5b8bc51a044895cb991e5 "返されたデータは読み取り専用になっていますが、インポータオブジェクトはデータの所有権を保持しています。破壊。" 私は輸入者の宣言をヘッダーにも移動しなければなりませんでした。ありがとうございました! –

+0

ありがとう - 私は同じ問題を抱えていた –

関連する問題