Per il primo problema penso che basti aggiungere un'istruzione in testa al programma:
vale a dire l'header della malloc.codice:#include <stdlib.h>
Per il secondo problema devi sapere che tu con questa istruzione
hai passato un carattere alla funzione strcat, mentre volevi passare l'indirizzo di quel carattere all'interno della stringa.codice:Name[strlen(Name)-4]
Per risolvere il problema basta che usi l'operatore trova-indirizzo &, l'istruzione corretta è
Dimenticavo, la strcat concatena solo stringhe, quindi non funzionerà se DBF_EXTENSION è un carattere.codice:strcat(&Name[strlen(Name)-4],DBF_EXTENSION);
In questo caso devi creare una stringa che contiene solo quel carattere e passarglielo