takie zadanie:

Pobierz dwie liczby całkowite dodatnie z klawiatury.
Zadeklaruj tablicę dynamiczną dwuwymiarową. Rozmiary wymiarów, to te wartości wczytywane z klawiatury.
Zrób alokację pełną (wymiar „lewy” na stertę, wymiar „prawy” na stertę). Wypełnij kolejne komórki wartościami: 1, 2, 3, ...
Wydrukuj tablicę na ekranie.

czy mój kod jest poprawny? średnio to rozumiem, z góry dzięki za sprawdzenie

#include <stdlib.h>
#include <stdio.h>

int main()
{
    int x, y;
    printf("Podaj 2 liczby calkowite:\n");
    scanf("%d %d", &x, &y);
    int **tab1;
    tab1 = malloc(x * sizeof(int*));
    for(unsigned n = 0; n < x; n++)
    {
        tab1[n] = calloc(y, sizeof(int));
    }
    
    int k = 1;
    for(int i = 0; i<x; i++)
    {
        for(int j = 0; j < y; j++)
        {
            tab1[i][j] = k;
            k++;
        }
    }
    
    for(int i = 0; i<x; i++)
    {
        for(int j = 0; j < y; j++)
        {
            printf("%4i", tab1[i][j]);
        }
        putchar('\n');
    }
  
    return 0;
}