Почему не доступен объект CircleShape?

При компиляции пишет: Вызвано исключение по адресу 0x0FE581E6 (sfml-graphics-d-2.dll) в infectionGraph.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xCDCDCDD5.
И ссылается на строку: init->circle.setRadius(size);
Если закомментить, то след ошибка на строке: window.draw(root->circle);
Я так понимаю, объект недоступен почему-то

#include <SFML/Graphics.hpp>
#include <stdint.h>

using namespace sf;

#define AMOUNTNODES 10
#define AMOUNTLINKS 5
#define SIZEX 600
#define SIZEY 600

RenderWindow window(VideoMode(SIZEX, SIZEY), "Infection Graph", Style::Close);

struct Node {
	CircleShape circle;
	uint16_t position[2];
	Node * links[AMOUNTLINKS];
	bool healthy = true;
};

class opNode
{
	private:
		uint8_t size;
		const Color & healthy = Color(150, 220, 55, 255);
		const Color & infected = Color(220, 113, 55, 255);
		Node * root = nullptr;
		void initRoot();
		void create(Node * node);
	public:
		opNode(uint8_t size);
		void draw();
};

opNode::opNode(uint8_t size)
{
	this->size = size;
	create(root);
}

void opNode::initRoot()
{
	Node * init = (struct Node*)malloc(sizeof(struct Node));
	//init->circle.setRadius(size);
	init->position[0] = rand() % SIZEX + size / 2 + 1;
	init->position[1] = rand() % SIZEY + size / 2 + 1;
	for (uint16_t i = 0; i < AMOUNTLINKS; i++) init->links[i];
	init->healthy = true;
	root = init;
}

void opNode::create(Node * node)
{
	if (!root) initRoot();
	//for (uint32_t i = 0; i < AMOUNTNODES; i++)
	//{

	//}
}

void opNode::draw()
{
	root->circle.setFillColor(root->healthy ? healthy : infected);
	root->circle.setPosition(root->position[0], root->position[1]);
	window.draw(root->circle);
}

int main()
{
	opNode pluguInc = opNode(20);

	while (window.isOpen())
	{
		Event event;
		while (window.pollEvent(event))
		{
			if (event.type == Event::Closed)
				window.close();
		}

		window.clear(Color(240, 240, 240, 1));

		pluguInc.draw();
		
		window.display();
	}

	return 0;
}
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 июн. 2024, в 02:23
5000 руб./за проект
26 июн. 2024, в 00:28
5000 руб./за проект
25 июн. 2024, в 23:31
1500 руб./за проект