Есть ли способ использовать указатели
Да, делая это точно так, как вы это делаете.: -)
Это объявление
void fillArray(char array[][COLUMN], char c)
фактически идентично
void fillArray(char (*array)[COLUMN], char c)
2-я версия говорит вам, что array
определяется как указатель намассив COLUMN
char
с.
Общее правило:
Когда массив передается в функцию, он распадается на указатель на свой 1-й элемент.* 1
Поэтому, когда в main()
вы передаете array
в fillArray()
, тогда array
затухает в указателе a char[COLUMN]
, в char(*)[COLUMN]
.
* 1 И наоборот, это означает, что в C невозможно передать « весь массив » непосредственно в функцию.Это может быть достигнуто только путем упаковки массива в struct
.