tablica trojwymiarowa

0

Witam,

Moje pytanie dlaczego po dodaniu zwalniania pamięci wyskakuje błąd?

#include <iostream>

using namespace std;

int main()
{

int liczba = 1;
int ile = 10;

int ***tab = new int **[ile];
int ***wsk = tab;

for (int i = 0; i < ile; i++, wsk++)
{
	*wsk = new int *[ile];
	for (int j = 0; j < ile; j++, (*wsk)++)
	{
		**wsk = new int[ile];
		for (int k = 0; k < 10; k++, liczba++, (**wsk)++)
		{
			***wsk = liczba;
			cout << ***wsk << " ";
		}
		cout << endl;
	}
}

wsk = tab;

for (int i = 0; i < ile; i++)
{
	for (int j = 0; j < ile; j++)
	{
		
		delete[] tab[i][j];
	}
	delete[] tab[i];
}

	


delete[] tab;
system("pause");

}

0

Bo to: (*wsk)++ i (**wsk)++ podczas inicjalizacji nie dziala tak jak myslisz. Dlaczego nie skorzystasz z vector<vector<vector<int>>>?

1

Błędy zaczynają się tu:

int ile = 10;

    int *tab = new int [ile];
    int ***wsk = tab; 
0

nie no tam mam int ***tab = new int **[ile]; // trzy gwiazdki z lewej i dwie z prawej przed [ile] tylko cos sie zle generuje

0

krwq a jak dziala? Bo do momentu zwalniania pamieci program sie nie sypie i wyswietla liczby od 1 do 1000 tylko przy delete sa jakies problemy

0

O cos takiego chodzi?

#include <iostream>
using namespace std;

int main() {
	const int n = 3;
	int*** tab = new int**[n];
	int a = 1;
	for (int i = 0; i < n; i++)
	{
		tab[i] = new int*[n];
		for (int j = 0; j < n; j++)
		{
			tab[i][j] = new int[n];
			for (int k = 0; k < n; k++)
			{
				tab[i][j][k] = a++;
			}
		}
	}
	
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << "[" ;
			for (int k = 0; k < n; k++)
			{
				if (k != 0)
				{
					cout << " ";
				}
				cout << tab[i][j][k];
			}
			cout << "] ";
		}
		cout << endl;
	}
	
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			delete [] tab[i][j];
		}
		delete [] tab[i];
	}
	delete [] tab;
	return 0;
}

Output:

[1 2 3] [4 5 6] [7 8 9] 
[10 11 12] [13 14 15] [16 17 18] 
[19 20 21] [22 23 24] [25 26 27]
0

Hehe, no tak to wiem ze mozna ale chcialem sobie wskazniki pocwiczyc i bylem ciekaw czy mozna zrobic w ten sposob jak ja probowalem.

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