Для меня весь текст появлялся неизменно, поэтому я не смог проверить, решат ли эти улучшения вашу проблему или нет, но они определенно связаны с вашим кодом.
Вы должны освободить памятьвыделенный malloc
внутри cts
, например, вы можете сделать это следующим образом:
char* temp = cts(OUT_STRING[x]);
TTF_SizeText(f, temp, &rect.w, &rect.h);
free(temp);
При проверке, произошло ли событие выхода, не используйте присвоение вместо сравнения.Правильный способ сделать это:
if (e.type == SDL_QUIT) quit = true;
При проверке, достигли ли вы конца массива char
, не используйте NULL
.Сделайте это следующим образом:
if (OUT_STRING[x] == '\0') return;