【问题标题】:C++ const struct pointer not accessibleC++ const struct 指针不可访问
【发布时间】:2011-08-09 16:10:18
【问题描述】:

我在课堂上声明了const struct aiScene *scene;

在我定义 scene = importer.ReadFile(file, aiProcess_Triangulate); 的函数中,可以访问场景结构。例如,我可以打印出scene->mNumMeshes

问题是不能从其他功能正确访问场景。如果我尝试打印出scene->mNumMeshes,那么它每次都会打印不同的数字(内存地址?)。

我怎样才能让课堂中的每个函数都可以访问场景?

【问题讨论】:

  • 你能告诉我们你定义scene的函数吗?

标签: c++ pointers struct constants


【解决方案1】:

不知道importer.ReadFile 中的内容是不可能确定的,但一个好的猜测是importer.ReadFile 返回一个指向堆栈上结构的指针。在它返回后,该结构将很快被其他数据覆盖——在您的第一次实验中,您可能只是幸运地在其他任何东西重用该位置之前得到了它。

确保ReadFile 返回一个堆分配结构而不是本地结构。

【讨论】:

  • 来自 Assimp 库文档:assimp.sourceforge.net/lib_html/… "返回的数据是只读的,导入器对象保留数据的所有权,并在销毁时将其销毁。"所以,我不得不将进口商的声明也移动到标题中。谢谢!
猜你喜欢
  • 2011-03-11
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多