В некоторых языках высокого уровня, таких как Python, вы можете бросить все, что вам нравится, в команду print
, и она попытается сделать что-то разумное с ней.
C не является одним из эти языки. Вам нужно быть более точным.
Прежде всего int 6, int 4
не имеет смысла. Ваш компилятор расскажет вам об этом. Просто напишите 6, 4
, если это те цифры, которые вам нужны.
Во-вторых, %d
- это спецификатор формата, который ожидает целочисленный аргумент. Но вы передаете указатель на указатель на целое число. Опять же, это не имеет смысла. Если вы хотите распечатать весь массив, вам придется печатать каждый элемент отдельно. Примерно так, возможно:
int main(void)
{
int i, j, **grid;
grid = malloc_grid(6,4);
if (grid == NULL) {
printf("Memory allocation error\n");
return 1;
}
for (j=0; j<4; j++) {
for (i=0; i<6; i++) {
printf("%3d ", grid[j][i]);
}
printf("\n");
}
return 0;
}