Zgłoszono wyjątek w lokalizacji

0

Cześć. Gdy próbuje skompilować program wyskakuje mi taki błąd. "Zgłoszono wyjątek w lokalizacji 0x7C1A40DF (vcruntime140d.dll) w najemnicy.exe: 0xC0000005: Naruszenie zasad dostępu podczas zapisywania w lokalizacji 0xCDCDCDCD." Ktoś wie co tu jest nie tak?

#include <stdlib.h>
#include <iostream>
#include <ctime>
#include <cstring>
typedef const int cint;
cint MaxHP = 200;
cint MinHP = 50;
cint MaxStat = 30;
cint MinStat = 5;
cint MaxNaj = 20;
cint Podzielnik = 4;
cint baseZad = 80;
cint baseIlosc = 3;
cint przelicznikRenomy = 500;

using namespace std;
struct naj
{
    string name;    //imie najemnika
    int hp;     //zycie
    int atk;    //atak
    int obr;    //obrona
    int zad;    //zadowolenie
    int pen;    //pensja
};
naj* spis = (naj*)malloc((MaxNaj) * sizeof(naj));                            //spis najemnikow

void MainMenu(int, int, int, int);
void Karczma(int, int);
int pensja(int, int, int);
int losowanie(int, int);
string newName();
int main()
{
    spis[0].name = "Bob";
    spis[0].hp = 100;
    spis[0].atk = 12;
    spis[0].obr = 8;
    spis[0].zad = baseZad;
    spis[0].pen = pensja(spis[0].hp, spis[0].atk, spis[0].obr);
    spis[1].name = "Rolf";
    spis[1].hp = 120;
    spis[1].atk = 8;
    spis[1].obr = 10;
    spis[1].zad = baseZad;
    spis[1].pen = pensja(spis[1].hp, spis[1].atk, spis[1].obr);
    spis[2].name = "Billy";
    spis[2].hp = 80;
    spis[2].atk = 10;
    spis[2].obr = 12;
    spis[2].zad = baseZad;
    spis[2].pen = pensja(spis[2].hp, spis[2].atk, spis[2].obr);
```c++
1

Na 90% nie zainicjowany wskaźnik w kodzie skompilowanym pod debuger.
W tym również alokowanie przez malloc zamiast new

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