Мне дали дали задание написать функцию, которая создаёт массив массивов и протестировать её, ниже приведён код моей программы. При запуске компилятор выдаёт ошибку
sol.c: In function ‘print_arr’:
sol.c:46:1: error: expected declaration or statement at end of input
46 | }
| ^
которую я расценил как требование поставить ';', но вот в чём дело. точек с запятой хватает. Укажите пожалуйста в чём ошибка моей программы (прошу не обращать внимание на то, что я не освободил за собой память, я планировал это реализовать после пробного запуска и я уверен, что и без этого всё должно работать)
#include <stdio.h>
#include <stdlib.h>
int** get_array_of_arrays(unsigned int a){
int** arr_arr = calloc(a, sizeof(int*));
for (size_t i = 0; i < a; ++a){
int b;
scanf("%d", &b);
arr_arr[i] = calloc(b, sizeof(int));
}
return arr_arr;
}
void fill_array(int** arr_arr){
unsigned int len = sizeof(arr_arr)/sizeof(int*);
for (size_t i = 0; i < len; ++i){
unsigned int len_2 = sizeof(arr_arr[i])/sizeof(int);
for (size_t j = 0; j < len_2; ++j){
int filler;
scanf("%d", &filler);
arr_arr[i][j] = filler;
}
}
}
void print_arr(int** arr_arr){
unsigned int len = sizeof(arr_arr)/sizeof(int*);
for (size_t i = 0; i < len; ++i){
unsigned int len_2 = sizeof(arr_arr[i])/sizeof(int);
for (size_t j = 0; j < len_2; ++j){
printf("%d\n", arr_arr[i][j]);
}
}
int main(){
int n;
scanf("%d", &n);
int** array_of_arrays = get_array_of_arrays(n);
fill_array(array_of_arrays);
print_arr(array_of_arrays);
return 0;
}