Cześć, uczę się języka c. Przerobiłem już trochę zadań, ale napotkałem mur, którego nie jestem wstanie przebić.. Mianowicie, chce utworzyć oddzielne funkcje "tworzenie_tablicy", "wypisywanie_tablicy" i "kasowanie". Wiem, że jest to najprawdopodobniej problem z implementacją wskaźników. Wiem, że jest też możliwość, stworzenia wskaźnika na funkcję, ale to już chyba co innego, choć nie pogardzę wiedzą. Jak byłby ktoś wstanie mi pomóc byłoby świetnie :D
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int tworzenie_tablicy(int n, int m, int **tablica2d)
{
int i, j;
srand(time(NULL));
tablica2d = (int**)malloc(n*sizeof(int*));
for(i=0; i<n; i++)
{
tablica2d = (int*)malloc(m*sizeof(int));
for(j=0; j<m; j++)
{
tablica2d[i][j] = rand()%10;
}
}
return **tablica2d;
}
int wypisywanie_tablicy(int n, int m, int **tablica2d)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
printf("Tablica[%d][%d] = %d", i, j, tablica2d[i][j]);
}
}
return 0;
}
int kasowanie_tablicy(int n, int m, int **tablica2d){
int i;
for(i=0; i<n; i++)
{
free(tablica2d[i]);
}
free(tablica2d);
return 0;
}
int main()
{
int n, m;
int **tablica2d;
printf("Podaj n i m:\n");
scanf("%d\n%d", &n, &m);
tworzenie_tablicy(n, m, tablica2d);
wypisywanie_tablicy(n, m, tablica2d);
kasowanie_tablicy(n, m, tablica2d);
return 0;
}