Napisałem kod, do zadania poniżej, niedawno zacząłem korzystanie ze wskaźników i chcę wiedzieć , gdzie popełniłem błędy we wczytywaniu/alokowaniu/wypisywaniu za pomocą wskaźników
"Napisz kod umożliwiający dynamiczne tworzenie tablic 2D o rozmiarze
NxM. Zdefiniuj funkcję umożliwiającą wypełnienie tablicy wartościami i
drugą wypisującą zawartość. Wykorzystaj przydzielenie pamięci do
wskaźnika wskaźników"
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void Arrayx2_1();
void Arrayx2_2();
int n,r,i,j;
int main()
{
int **tab;
puts("podaj wielkość tablicy dwuwymiarowej");
scanf("%d%d",&n,&r);
puts("\n");
tab = (int**) malloc(n * sizeof(**tab));
for (i=0; i<r; i++)
{tab[i] = (int *)malloc(r * sizeof(*tab));}
Arrayx2_1(tab);
Arrayx2_2(tab);
}
void Arrayx2_1(int **array)
{ int x,d;
for (i = 0; i< n; i++)
{
scanf("%d",&x);
**(array+i)=x;
for (j = 0; j <r ; j++)
{
scanf("%d",&d);
*(*(array+i)+j)=d;
}}
}
void Arrayx2_2(int **array_2)
{ puts("wypisz\n");
for (i = 0; i< n; i++)
for (j = 0; j <r ; j++)
{
printf("%d%d\n", *(*(array_2+i)+j));
}
}