@msuprunenko
C/C++ DirectX

Почему виндовс выдаёт «Прекращения работы» программы при событии SDL_MOUSEMOTION?

Почему виндовс выдаёт "Прекращения работы" программы при событии SDL_MOUSEMOTION ?
Вот немного исходного кода функции обработчика событий
SDL_Event event;
	while (SDL_PollEvent(&event))
	{
		switch (event.type)
		{
		case SDL_QUIT:
			running = false;
		case SDL_MOUSEMOTION:
			mousePosition->setX(event.motion.x);
			mousePosition->setY(event.motion.y);
			break;
		default:
			break;
		}

от код от координат
#pragma once

class Vector2d
{
public:

	//Vector2d(float m_x, float m_y) : x(x_m), y(y_m) {}
	Vector2d()
	{
		x = 0;
		y = 0;
	}
	// Get coordinates //
	const float getX() { return x; }
	const float getY() { return y; }
	// Set our coordinates //
	void setX(float m_x) { x = m_x; }
	void setY(float m_y) { y = m_y; }
	
	float x;
	float y;
};
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
GavriKos
@GavriKos
Дебагер в зубы и вперед. Скорее всего у вас либо mousePosition == null, либо mousePosition->setX провоцирует это же событие (SDL_MOUSEMOTION) и получается бесконечный цикл +переполнение стека.

Вообще если запустите в режиме отладки. то ошибка станет намного более информативной.

А еще у вас явная ошибка mousePosition->setX(event.motion.y); - тут наверное setY. Но это не по теме...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы