C++ 打开SFML窗口会导致内存读取错误

C++ 打开SFML窗口会导致内存读取错误,c++,sfml,C++,Sfml,我试图打开一个SFML窗口,但每次启动时它都会显示“访问冲突读取位置:0xCCC0”。错误发生在init()方法中。相关代码: class AirportGame { private: sf::RenderWindow window; public: void init(); int run(); / 它发生在init之后的某个时间,因为实际窗口是打开的。调试器中没有提到0xCC0。将窗口设置为 RenderWindow*窗口 并用 window = new sf::R

我试图打开一个SFML窗口,但每次启动时它都会显示“访问冲突读取位置:0xCCC0”。错误发生在init()方法中。相关代码:

class AirportGame {
private:
    sf::RenderWindow window;
public:
    void init();
    int run();
/

它发生在init之后的某个时间,因为实际窗口是打开的。调试器中没有提到0xCC0。

将窗口设置为 RenderWindow*窗口

并用

window = new sf::RenderWindow( /*your stuff or default initialize*/ );
然后打电话

window->create( /*your settings*/ );
如果你还没有初始化它

从那时起,只需使用“->”而不是“.”访问窗口。

修复了它


在C++预处理器下,我将定义设置为SFMLYSTATE而不是SFMLYORLYTION/P>,您没有启用调试符号吗?你为什么要使用mem address?它们已打开,但我要说的是,每个对象似乎都已正确定义,包括window.yar,但这是一个运行时错误:P-window应该是指针吗?@FaddishWorm:SFML并不神奇;C++。显示在哪里创建代码< > Apple PoxGe<代码> >你调用的是<代码>运行>代码>函数。我是这么想的。除非有一个很好的理由,否则你不应该使用<代码>新<代码>。为什么您认为堆分配会对这个问题产生影响?这是我一直使用的方法,而且效果很好。使用new并不是什么大问题,只要在完成后使用delete即可。

window->create( /*your settings*/ );