Tablice dwuwymiarowe, pomoc (krotki kod)

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).

1
  1. Skąd Ci się magicznie bierze user_add?
  2. Czemu używasz new[] zamiast std::vector?
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.
2. Powiedziano mi że tak najlepiej, nie znam std::vector ale jeśli jest to lepsza metoda mogę spróbować w ten sposób.

1

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

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