C++ const 结构指针不可访问

发布于 2024-11-28 20:15:31 字数 301 浏览 0 评论 0原文

我在类中声明了 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

节枝 2024-12-05 20:15:32

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

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

It's impossible to be sure without knowing what's in importer.ReadFile, but a good guess would be that importer.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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文