Drodzy Współprogramiści :D
W ramach ćwiczenia się w c++ zacząłem tworzyć małą grę w konsoli. Zrobiłem coś w rodzaju bufora - tablicę zawierającą wszystkie znaki, które mają się wyświetlić. Postanowiłem stworzyć funkcję, taką jak ta:
int WriteText(int nY, int nX, std::string strText, bool bCenter = false)
{
int nLength = strText.length();
// jeżeli bCenter == true wyśrodkuj
if (bCenter) nX = 40-(nLength-nLength%2)/2-1-nLength%2;
//pętla wpisywania
for (int i = 0; i < nLength; ++i)
Plansza[nY][nX+i] = strText[i]; // po dodaniu tego zaczął się pojawiać problem
return 0;
}
Ma ona wpisać dany tekst do mojej Planszy (24x80) literka po literce. Program uruchamia się i spełnia swoje zadanie, ale po dodaniu tej funkcji zamknięcie konsoli powoduje błąd:
Unhandled exception at 0x103206db (msvcr100d.dll) in Game in console.exe: 0xC0000005: Access violation writing location 0x00411163.
Odnosi mnie on do pliku dbgrpt.h, do linijki:
_VALIDATE_RETURN(mode == _CRT_RPTHOOK_INSTALL || mode == _CRT_RPTHOOK_REMOVE, EINVAL, -1);
Nigdzie nie potrafię znaleźć odpowiedzi jak naprawić ten wyciek... Proszę o pomoc i wyrozumiałość :)
dodanie znaczników <code class="cpp"> - furious programming