C++ const 结构指针不可访问
我在类中声明了 const struct aiScene *scene;
。
在我定义的函数中,scene = importer.ReadFile(file, aiProcess_Triangulate); 可以访问场景结构。例如,我可以打印出scene->mNumMeshes
。
问题是场景无法从其他功能正确访问。如果我尝试打印 scene->mNumMeshes
那么它每次都会打印不同的数字(内存地址?)。
如何使场景可以从类中的每个函数访问?
I have const struct aiScene *scene;
declared in class.
In the function where I define scene = importer.ReadFile(file, aiProcess_Triangulate);
, the scene struct is accessible. I can print out scene->mNumMeshes
for example.
Problem is that scene is not correclty accessible from another functions. If I try to print out scene->mNumMeshes
then it prints different numbers every time (memory addresses?).
How can I make scene accessible from every function in class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果不知道 importer.ReadFile 中的内容,就不可能确定,但一个好的猜测是 importer.ReadFile 返回指向堆栈上结构的指针。返回后,该结构将很快被其他数据覆盖——在您的第一个实验中,您可能很幸运地在其他任何东西重用该位置之前获得了它。
确保 ReadFile 返回堆分配的结构而不是本地结构。
It's impossible to be sure without knowing what's in
importer.ReadFile
, but a good guess would be thatimporter.ReadFile
returns a pointer to a structure on the stack. After it returns, the structure will quickly get overwritten by other data -- in your first experiment you may just have gotten lucky to get at it before anything else reused that location.Make sure that
ReadFile
returns a heap-allocated structure rather than a local one.