【发布时间】:2014-01-24 19:22:14
【问题描述】:
我正在尝试打开一个 SFML 窗口,但每次启动它时都会显示“访问冲突读取位置:0xCCCCCCC0”。错误发生在 init() 方法中。相关代码:
class AirportGame {
private:
sf::RenderWindow window;
public:
void init();
int run();
/
void AirportGame::init() {
window.create(sf::VideoMode(800, 600), "SFML window");
}
int AirportGame::run() {
init();
while (window.isOpen()) {
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
}
}
return 0;
}
int main() {
AirportGame* app = new AirportGame();
return app->run();
}
它发生在初始化之后的某个时间,因为实际的窗口是打开的。 0xCCCCCC0的调试器中没有提及。
【问题讨论】:
-
你没有打开调试符号吗?你为什么要去mem地址?
-
它们已打开,但我是说每个对象似乎都已正确定义,包括窗口。
-
yar,但它是一个运行时错误:P - 窗口应该是一个指针吗?
-
@FaddishWorm:SFML 并不神奇; C++ 是。
-
告诉我们你在哪里创建
AirportGame的实例,你正在调用run函数。