Hi people
Need help to pass variables with submenus, it was working before i put the menus.
I need to change total on a submenu but i don´t know how.
I want to pass the reference not a “copy”
1º I receive a copy on
int menu(pArea vector, int total, pspecies lista_animais);
2º i pass it
submenu1(vector, &total, lista_animais);
3º Then i receive it
int submenu1(pArea vector, int * total, pspecies lista_animais)
4º
Then here is ok imprime_areas(vector, *total);
5º
My problem is here how i pass by reference ?
vector = recebe_area_utilizador(vector, &total);
I receive the following warnings
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);
Code:
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); // HOW ???
break;
default: printf("Introduza o valor correcto respectivo ao menu que quer selecionar!\n");
submenu1(vector, total, lista_animais);
}
}