Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;简单对象销毁错误_C++ - Fatal编程技术网

C++ C++;简单对象销毁错误

C++ C++;简单对象销毁错误,c++,C++,我已经写了一段代码,在它的类声明中包含一个常量变量。但是,我在类的函数中初始化变量的值。在整个课程中,我可以毫不费力地使用这个变量。但当我试图通过类的另一个函数访问该变量时,我不能。它的值似乎设置为NULL。下面是类的声明(仅限变量部分) 我正在一个名为LoadModel() 如果我在使用此变量的LoadModel()函数中调用名为Update()的函数,它工作得很好,但是当我在同一类的Render()函数中调用它时,程序崩溃。我可以在调试器中看到,pScene有一些错误“无法读取内存”使变量“

我已经写了一段代码,在它的类声明中包含一个常量变量。但是,我在类的函数中初始化变量的值。在整个课程中,我可以毫不费力地使用这个变量。但当我试图通过类的另一个函数访问该变量时,我不能。它的值似乎设置为
NULL
。下面是类的声明(仅限变量部分)

我正在一个名为
LoadModel()


如果我在使用此变量的
LoadModel()
函数中调用名为
Update()
的函数,它工作得很好,但是当我在同一类的
Render()
函数中调用它时,程序崩溃。我可以在调试器中看到,
pScene
有一些错误“无法读取内存”

使变量“imp”成为全局变量。愚蠢的错误

pScene
成员无论如何都不是const;它指向的是常量。
我初始化类函数中变量的值
不可能。您混淆了初始化和赋值。好吧,但当我试图通过其他函数访问它时,为什么它是空的?它不是一个可以被任何成员函数访问的类变量吗?@user3163223:是的,应该是。它已被您的某些代码修改,或被内存损坏覆盖。如果我没有进一步的猜测,那将是毫无意义的。请注意,除非您能提供其他证明,否则没有理由特别假设指针已变为
NULL
。不可访问的位置看起来像是对指针的覆盖,无论是在Render()中还是通过调用Render()之前的代码。您可以通过在ReadFile()之后直接打印pScene的值来进行一些printf调试,然后在关键点打印pScene的值。我认为讨论有助于发现错误,因此它不是徒劳的。
public:
    const aiScene *pScene;
pScene = imp.ReadFile(fileName,
    aiProcess_CalcTangentSpace |
    aiProcess_ConvertToLeftHanded |
    aiProcess_Triangulate |
    aiProcess_GenSmoothNormals |
    aiProcess_OptimizeMeshes);

if (pScene == NULL)
    MessageBoxA(NULL, imp.GetErrorString(), "Error", MB_OK);