Witam.
Przerabiam rozdział z książki Alex Alain - Przewodnik dla początkujących C++. - Dynamiczna alokacja pamięci.
Zadanie :
*Napisz funkcję, która pobiera trzy argumenty -- długość, szerokość i wysokość, dynamicznie alokuje trójwymiarową tablicę utworzoną na podstawie tych wartości, po czym wypełnia ją tabliczkami mnożenia. Nie zapomnij o zwolnieniu pamięci po zakończeniu działania. *
Tak wyglądają moje starania.
Dostaję adresy zamiast wyników.
Jeszcze nie ustawiłem zwalniania pamięci.
Nie chcę gotowych rozwiązań. Raczej żeby ktoś mnie nakierował gdzie popełniam błąd i dlaczego.
Pozdrawiam.
#include <iostream>
using namespace std;
void trojWymiarowaTablica(int* w_w, int* w_s, int* w_d )
{// tworzenie 3d tablicy.
int*** tablica = new int** [*w_w];
for (int i = 0; i < *w_w; i++)
{
tablica[i] = new int*[*w_s];
for (int j = 0; j < *w_s; j++)
{
tablica[i][j] = new int[*w_d];
}
}
// tworzenie tabliczki mnozenia.
for (int i = 0; i < *w_w; i++)
{
for (int j = 0; j < *w_s; j++)
{
int s = 0;
s++;// skipuje
{
*tablica[i][j] = (i + 1) * (j + 1);
for (int k = 0; k < *w_d; k++)
{
tablica[i][j][k] = *tablica[i][j];
}
cout << "[" << tablica[i][j] << "]";
if (s == *w_s)
{
cout << " \n";
s = 0;
}
}
}
}
}
int main()
{// 3 3 3
int d, s, w;
cout << "Podaj dlugosc, szerokosc, wysokosc; \n";
cout << "Wysokosc : " << endl;
cin >> w;
cout << "Szerokosc : " << endl;
cin >> s;
cout << "Dlugosc : " << endl;
cin >> d;
trojWymiarowaTablica(&w, &s, &d);
}