char **
не представляет собой 2D-массив - это будет массив указателей на указатели. Вам нужно изменить определение printarray
, если вы хотите передать ему 2D-массив:
void printarray( char (*array)[50], int SIZE )
или эквивалентно:
void printarray( char array[][50], int SIZE )