Problem Visual Studio 2019 Nieobsłużony wyjątek w lokalizacji 0x78383D99 (vcruntime140d.dll)

0

Podczas próby odpalenia debugowania programu pokazuje się komunikat:
Nieobsłużony wyjątek w lokalizacji 0x78383D99 (vcruntime140d.dll) w krzyzowka.exe: 0xC0000005: Naruszenie zasad dostępu podczas zapisywania w lokalizacji 0xD896D27E.
Co robić?

1

Wyjeżdżasz poza zakres, jeździsz po null pointerach, albo coś podobnego.
Stawiam tezę, że błąd byłby dla doświadczonych widoczny w kodzie - gdybyś kod podał.

0
AnyKtokolwiek napisał(a):

Wyjeżdżasz poza zakres, jeździsz po null pointerach, albo coś podobnego.
Stawiam tezę, że błąd byłby dla doświadczonych widoczny w kodzie - gdybyś kod podał.
KOD:
#include <iostream>
#include<windows.h>
#include<time.h>
using namespace std;
void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int main()
{
string slowo[5], odpowiedz;
cout << "KRZYZOWKA O RYCERZACH";

slowo[0] = "krol";
slowo[1] = "pojedynek";
slowo[2] = "miecz";
slowo[3] = "helm";
slowo[4] = "honor";
slowo[5] = "tarcza";

gotoxy(10, 3);
cout << "1. _ R _ _";
gotoxy(2, 4);
cout << "2. _ _ _ _ _ Y _ _ _";
gotoxy(6, 5);
cout << "3. _ _ _ C _";
gotoxy(10, 6);
cout << "4. _ E _ _";
gotoxy(4, 7);
cout << "5. _ _ _ _ R";
gotoxy(4, 8);
cout << "6. _ _ _ _ Z _";

gotoxy(2, 10);
cout << "PYTANIA DO KRZYZOWKI" << endl;
cout << "1. Osoba ktorej sluzyl rycerz i sredniowieczny wladca." << endl;
cout << "2. krwawy, choc zarazem uznawany za honorowy, sposob rozstrzygania konfliktow miedzy dwoma rywalami." << endl;
cout << "3. Bron, ktora zazwyczaj walczyli rycerze, charakteryzujaca sie prosta, obosieczna glownia i otwarta rekojescia" << endl;
cout << "4. bojowa ochrona, chroniaca glowe przed urazami" << endl;
cout << "5. Rycerze walczyli dla tego i z powodu tego nie mogli opuscic pola bitwy" << endl;;
cout << "6. obronna czesc uzbrojenia uzywana przez formacje konne i piesze, zazwyczaj wykonana z drewna" << endl;

gotoxy(29, 2);
cout << "POLE NA ODPOWIEDZ";
gotoxy(30, 3);
cout << "______________";
gotoxy(29, 4);
cout << "|              |";
gotoxy(29, 5);
cout << "|              |";
gotoxy(29, 6);
cout << "|______________|";
gotoxy(50, 2);
cout << "INSTRUKCJE DO KRZYZOWKI:";
gotoxy(50, 3);
cout << "1. nie, uzywaj polskich znakow i duzych liter.";

while (true)
{
	gotoxy(31, 5);
	cin >> odpowiedz;
	for (int i = 0; i <= 5; i++)
	{
		if (odpowiedz == slowo[i])
		{

		}
	}
}

}

2

Pierwsze co się rzuca w oczy, to deklarujesz tablicę na 5 sztuk, a używasz 6.
Użyteczność tablic w C kończy na indeksie o jeden mniejszym, niż rozmiar.

2

Z tego

slowo[0] = "krol";
slowo[1] = "pojedynek";
slowo[2] = "miecz";
slowo[3] = "helm";
slowo[4] = "honor";
slowo[5] = "tarcza";

oraz pętli wynika że zamiast:

string slowo[5]

powinieneś mieć:

string slowo[6]

bo wyjeżdżasz po za zakres tablicy

1 użytkowników online, w tym zalogowanych: 0, gości: 1