C erreur: type de tableau est incomplet type d'élément

Je suis en train de compiler un programme sous Ubuntu 11.04 qui fonctionne bien sous Windows mais il donne l'erreur ci-dessus. J'ai ajouté un commentaire à la ligne qui est à l'origine de l'erreur. Voici le code:

route_input() {
    int num_routes;//Variable to act as the loop counter for the loop getting route details
    int x;

    char route_id[3];
    char r_source[20];
    char r_destination[20];
    int r_buses;



    printf("Please enter the number of routes used: \n");
    scanf("%d", &num_routes);
    char routes_arr[num_routes][10];//An array to hold the details of each route

    printf("\nNumber of routes is %d\n", num_routes);

    struct route r[num_routes];//An array of structures of type route (This line causes the error)

    fflush(stdin);

    for (x = num_routes; x > 0; x--) {
         printf("\nEnter the route number: ");
         scanf("%s", r[x].route_num);
         printf("Route number is %s", r[x].route_num);


         printf("\nEnter the route source: ");
         fflush(stdin);
         scanf("%s", r[x].source);
         printf("Source = %s", r[x].source);


         printf("\nEnter the route destination: ");
         fflush(stdin);
         gets(r[x].destination);
         printf("Destination = %s", r[x].destination);

         printf("\nEnter the number of buses that use this route: ");
         scanf("%d", &r[x].num_of_buses);
         printf("Number of buses = %d", r[x].num_of_buses);


    }

    for (x = num_routes; x > 0; x--) {
        printf("\n\n+++Routes' Details+++\nRoute number = %s, Source = %s, Destination = %s, Number of buses for this route = %d\n", r[x].route_num, r[x].source, r[x].destination, r[x].num_of_buses);
    }

}
Ne pas fflush(stdin), c'est un comportement indéfini.
double possible de stackoverflow.com/questions/2274550/...
Qu'est-ce que struct route, où est-il défini?
@Deebee souligné, si votre struct route est une structure de données récursive avec les non-pointeur auto-référentielle de membres, vous êtes susceptible de frapper le incomplète type de problème.
fflush(stdout) à la place si vous voulez vous assurer que les messages ne se termine pas dans de nouvelles lignes apparaissent.

OriginalL'auteur diamondtrust66 | 2012-05-01