Copiei e colei o código da resposta, mas dá erro ao compilar. Aparentemente, ele não entende o &m que é passado aos métodos do main. Ressalto que criei a variável global MAPA m; no início do código
Uso o Ubuntu e o terminal dá o seguinte erro ao compilar:
/tmp/ccPTMW3j.o: na função main':
fogefoge.c:(.text+0x183): referência indefinida para
lemapa'
fogefoge.c:(.text+0x197): referência indefinida para encontramapa'
fogefoge.c:(.text+0x1a1): referência indefinida para
imprimemapa'
fogefoge.c:(.text+0x1dd): referência indefinida para `liberamapa'
collect2: error: ld returned 1 exit status