Skamp12
28-01-2019, 17:08
Ciao a tutti premetto che sia una domanda molto banale ma sto impazzendo non riesco a passare una struct per riferimento perche una volta uscito dalla funzione di riempimento e passata la struct alla funzione di stampa la struct risulta essere vuota,dov'e che sbaglio?
Questa è la struct:
typedef enum {NESSUN_PERICOLO=1,TRAPPOLA,ALIENO} tipo_pericolo;
typedef enum { MEDIKIT=1,POZIONE,MATERIALE,COLPI_LANCIARAZZI} tipo_ogetto;
struct Cella{
tipo_pericolo pericolo;
tipo_ogetto oggetto;
};
Questo è il prototipo di funzione:
static struct Cella *map=NULL;
void crea_scacchiera(struct Cella *mapp,int righe,int colonne);
E questa è la sua chiamata
do{
rewind(stdout);
rewind(stdin);
printf("1-CREA SCACCHIERA\n");
printf("2-STAMPA SCACCHIERA\n");
printf("3-TERMINA CREAZIONE\n");
printf("?");
rewind(stdout);
rewind(stdin);
scanf("%d",&f);
switch (f) {
case 1: crea_scacchiera(&map,rig,col);
break;
case 2:stampa_scacchiera(map,rig,col);
break;
case 3: termina_creazione();
break;
default:puts("COMANDO INVALIDO SCEGLIERE DA 1 A 3\n");
break;
}
}while(f!=3);
nella chiamata se uso la "&" mi da errore in fase di compilazione se non la uso la struct una volta uscito dalla funzione risulta essere vuota
Questa è la struct:
typedef enum {NESSUN_PERICOLO=1,TRAPPOLA,ALIENO} tipo_pericolo;
typedef enum { MEDIKIT=1,POZIONE,MATERIALE,COLPI_LANCIARAZZI} tipo_ogetto;
struct Cella{
tipo_pericolo pericolo;
tipo_ogetto oggetto;
};
Questo è il prototipo di funzione:
static struct Cella *map=NULL;
void crea_scacchiera(struct Cella *mapp,int righe,int colonne);
E questa è la sua chiamata
do{
rewind(stdout);
rewind(stdin);
printf("1-CREA SCACCHIERA\n");
printf("2-STAMPA SCACCHIERA\n");
printf("3-TERMINA CREAZIONE\n");
printf("?");
rewind(stdout);
rewind(stdin);
scanf("%d",&f);
switch (f) {
case 1: crea_scacchiera(&map,rig,col);
break;
case 2:stampa_scacchiera(map,rig,col);
break;
case 3: termina_creazione();
break;
default:puts("COMANDO INVALIDO SCEGLIERE DA 1 A 3\n");
break;
}
}while(f!=3);
nella chiamata se uso la "&" mi da errore in fase di compilazione se non la uso la struct una volta uscito dalla funzione risulta essere vuota