Jump to content
thinkabout

Passagem por referencia com vários submenus

Recommended Posts

thinkabout

Estou a fazer os menus e estou-me a encontrar com dificuldades em passar valores entre os menus.

 

Recebo uma cópia do total no meu “menu”, depois passo como referencia para o meu submenu1.

 

Se tentar usar a copia da variável ela trabalha bem.

 

Se tentar a passar por referencia o compilador queixa-se.

 

main.c:132:57: warning: passing argument 2 of 'recebe_area_utilizador' makes integer from pointer without a cast [-Wint-conversion]

         case 4: vector = recebe_area_utilizador(vector, &total);           

                                                         ^

In file included from main.c:3:0:

VectorDinamico.h:42:7: note: expected 'int' but argument is of type 'int **'

 pArea recebe_area_utilizador(pArea vector, int total);

 

int menu(pArea vector, int total, pspecies lista_animais) {
    int tipo1;

    printf("number after insert %d\n", total);


    printf("\n1- Areas \n2- Segundo menu\n3- Terceiro menu\n4- Quarto menu\n\n");
    scanf("%d", &tipo1);
    getchar();

    switch (tipo1) {
        case 1: printf("Entrou no primeiro menu!\n");
            submenu1(vector, &total, lista_animais);
            break;
        case 2: printf("Entrou no segundo menu!\n");
            //  submenu2(vector, total, lista_animais);
            break;
        case 3: printf("Entrou no terceiro menu!\n");
            // submenu3(vector, total, lista_animais);
            break;
        case 4: printf("Entrou no quarto menu!\n");
            // submenu4(vector, total, lista_animais);
            break;
        default: printf("Introduza o valor correcto respectivo ao menu que quer selecionar!\n");
            menu(vector, total, lista_animais);
    }
}

int submenu1(pArea vector, int * total, pspecies lista_animais) {
    int tipo2;
    printf("\n1- Imprime todas as areas\n2- Segundo sub-menu1\n3- Terceiro sub-menu1\n4- Nova Area\n\n");
    scanf("%d", &tipo2);
    getchar();

    switch (tipo2) {
        case 1:
            imprime_areas(vector, *total);
            break;
        case 2: printf("Entrou no segundo sub-menu1!\n");
            break;
        case 3: printf("Entrou no terceiro sub-menu1!\n");
            break;
        case 4: vector = recebe_area_utilizador(vector, &total);            
            break;
        default: printf("Introduza o valor correcto respectivo ao menu que quer selecionar!\n");
            submenu1(vector, total, lista_animais);
    }
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.