c++ Process returned -1073741819 (0xC0000005)

0

Here is the whole code. I know that the problem is somewhere in the hozzaad function, but I don't know to debug it. I want to create a dynamic 2d array, with exacly vagonszam columns, but the number of rows differ.

#include <iostream>
#include <fstream>
#include <string.h>
#include <cstdlib>

using namespace std;

class Vonat{
    int vagonszam, maxtomb;
    int **vagonok;
    int *seged;
    enum szallitmany {szen, fa, ko} ;
public:
    void beolvas(int x);
    Vonat(): vagonszam(0), maxtomb(0) {}
    void kiir();
    void hozzaad(int **vagonok, int i, string szallitmany);
};

void Vonat::hozzaad(int **vagonok, int i, string szallitmany)
{
    ++vagonok[i][0];
    seged = (int *) realloc(vagonok[i], ((vagonok[i][0]+1)*sizeof(int)));
    seged[vagonok[i][0]]=1;
}

void Vonat::beolvas(int x)
{
    char szovegesallomany[]="beVagonTartalma";
    szovegesallomany[15]=x+'0';
    szovegesallomany[16]='\0';
    strcat(szovegesallomany, ".txt");
    ifstream f(szovegesallomany);
    f>>vagonszam>>maxtomb;

    vagonok = new int*[vagonszam];

    string szallitmany;

    for(int i=0;i<vagonszam;i++)
    {
        vagonok[i] = new int[1];
        vagonok[i][0]=0;

        do
        {
            f>>szallitmany;
            cout<<szallitmany<<" ";
            hozzaad(vagonok, i, szallitmany);
        }
        while(szallitmany!="*");
    }


    f.close();
}


void Vonat::kiir()
{
    cout<<vagonszam<<" "<<maxtomb<<endl;
}

int main()
{
    Vonat v_52164;
    v_52164.beolvas(1);
    v_52164.kiir();
    Vonat v_54587;
    v_54587.beolvas(2);
    v_54587.kiir();
    return 0;
}

In this code something's wrong, because after running it gets the error message specified before.

Thanks to everyone, who try to help me, all the best.

c++
arrays
dynamic
2d
asked on Stack Overflow Mar 21, 2020 by Alíz Péntek • edited Mar 21, 2020 by Alíz Péntek

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0