Sì ho dimenticato di scrivere un \ ma nel programma lo avevo messo bene. In pratica l'errore consiste nel fatto che non mi permette di inserire correttamente le stringe.
Ti copio tutto il sorgente così magari è più facile capire l'errore:
codice:
#include <stdio.h>

#define MAX 10

struct automobili {
    char marca[25];        
    char modello[25];
    int  unita;
};


struct automobili auto_array[MAX];

int num_auto=0; 


int Menu();   

int Inserimento(int);   

void Visualizzazione(int, struct automobili *); 




int main(){
    int scelta=-1;          
    while (scelta!=0) {
        scelta=Menu();
        if (scelta==1){
            num_auto = Inserimento(num_auto);}
        else if(scelta==2) Visualizzazione(num_auto, auto_array);
    }
    printf("\nArrivederci\n");
}

int Menu(){
    int n;
    do{
        printf("\t-----------------------------------\n");
        printf("\t-------------Archivio--------------\n");
        printf("\t-----------------------------------\n\n");
        printf("\t 1. Inserire una nuova autovettura\n");
        printf("\t 2. Visualizzare archivio\n");
        printf("\t 0. Uscire\n\n");
        printf("\t Cosa vuoi fare?\n \t>>");
        scanf("%d",&n);
    }while (n!=0 && n!=1 && n!=2); 
    return n;
}

void Visualizzazione(int pos, struct automobili *p){
    int i; //contatore auto
    char pausa;
    if (pos==0) {
        printf("\nIn questo momento non ci sono macchine in garage.\n\n");
        scanf("%c", &pausa);
    }
    else{
        for(i=0; i<pos; i++){
            printf("\n %d° macchina:\n",i+1);
            printf("\tMarca:\t %s", p->marca);
            printf("\n\tModello: %s", p->modello);
            printf("\n\tUnità : %d \n", p->unita);
            p++;
            scanf("%c", &pausa);
        }
        printf("\n\tPremi un tasto per tornare al menu\n\n\n\n");
        scanf("%c", &pausa);
    }
}

int Inserimento(int pos){
    char pausa;
    if (pos<MAX) { 
        printf("\n Inserire i dati della nuova auto\n");
        printf("\tMarca:");
        fgets(auto_array[pos].marca,25,stdin);
        printf("\n\tModello:");
        fgets(auto_array[pos].modello,25,stdin);
        printf("\n\tQuante:\t\t");
        scanf("%d", &auto_array[pos].unita);
        pos++;
        printf("\n\tPremi un tasto per tornare al menu\n");
        scanf("%c", &pausa);
        return(pos);}
    else{
        printf("Errore, l'archivio è pieno!");
        scanf("%c", &pausa);
        return(pos);}
    
}