Двумерный массив как аргумент функции

Как передать двумерный массив в качестве аргумента функции (учитывая, что размер массива известен)? Мне понадобится помощь как для объявления, так и для определения функции. Я имею в виду что-то вроде этого:

#include <stdio.h>
#define size 10
void function(int anarray[size][size]); //<- Is that correct?
...

void function(int anarray[][]) //<-Is this too?
{
}    

Большое спасибо!


person Community    schedule 23.06.2013    source источник


Ответы (1)


void function1(int anarray[size][size]); // <- Is that correct?

Да, это так. void function1(int anarray[][size]); тоже подойдет.

void function1(int anarray[][]) // <- Is this too?

Нет, это ошибка компилятора. Только первое (самое внутреннее) измерение массива превращается в указатель при передаче в функцию.

person Community    schedule 23.06.2013
comment
могу я сказать void function1(int anarray[N][N])? Спасибо за ваш быстрый ответ - person ; 24.06.2013
comment
@darkchampionz Вы прочитали первую строчку моего ответа? Я имею в виду, да, этого вполне достаточно, не так ли? - person ; 24.06.2013
comment
@darkchampionz Объявление и определение функции должны быть совместимы. Выберите любое объявление типа, которое вам подходит, и используйте его последовательно. - person ; 24.06.2013