Tablice dwuwymiarowe, pomoc (krotki kod)

Odpowiedz Nowy wątek
2019-03-13 15:09
0

    void parts() {

        int count = 1;
        for (int i = 0; i < user_add.length(); i++)
        {
            if(user_add[i] != 44)
            if (user_add[i] == 44)count++;
        }

        string **tab = new string*[user_add.length()];

        for (int i = 0; i < count; i++)
        {
            tab[i] = new string [user_add.length()];
        }

        int j = 0;
        int i=0;
        do{
            tab[i][j] = user_add[i];
            cout << tab[i][j];
            if (user_add[i] == 44)
            {
                cout << endl;
                j++;
            }
            i++;
        } while (user_add[i] != '\0');

        for (int i = 0; i < count; i++)delete[] tab[i];
        delete[] tab;

    }

Witam, po wysietleniu pierwszej literki wywala błąd
"Exception thrown at 0x011D4B9B in L1Z5.exe: 0xC0000005: Access violation writing location 0xCDCDCDE1."

Domyślam się że coś źle zrobiłem z dostępem do pamięci lub allokacja pamięci ?
Program ma dzielić zdanie na podstawie przecinków i wrzucać je do dynamicznej tablicy. Proszę o pomoc(jestem początkujący).

Pozostało 580 znaków

2019-03-13 15:22
1
  1. Skąd Ci się magicznie bierze user_add?
  2. Czemu używasz new[] zamiast std::vector?

Pozostało 580 znaków

2019-03-13 15:34
0
hauleth napisał(a):
  1. Skąd Ci się magicznie bierze user_add?
  2. Czemu używasz new[] zamiast std::vector?

1.To jest atrybut klasy, wkleiłem tylko metodę klasy żeby nie wklejać całego kodu bo reszta działa prawidłowo.

  1. Powiedziano mi że tak najlepiej, nie znam std::vector ale jeśli jest to lepsza metoda mogę spróbować w ten sposób.

Pozostało 580 znaków

2019-03-13 21:08
1

Pierwsza pętla jest totalnie wycinana z kodu przez kompilator i Twoje count jest zawsze równe 1.


Wole wizerunek z nożem w zębach, przejść po trupie
Niż zgrywać ćwierćinteligenta z piórkiem w d.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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