Ok ... puoi restituire la struttura ma tu non lo fai perche' hai scritto

return 0;

invece di

return binario;

Per quanto riguarda la stringa, non puoi operare in quel modo perche' avresti un errore quando tenti di modificare la stringa.

Se sai quanto puo' essere grande (al massimo) la stringa mod, scrivilo nella struttura

char mod[100];

altrimenti, non ti resta che l'allocazione dinamica.

P.S. Non modificare il codice del primo post ma aggiungi un altro post con il codice nuovo ... altrimenti, chi legge il thread per la prima volta, non capisce nulla ...