View Full Version : [c] Problemi con i puntatori delle liste
Prince_81
02-09-2008, 15:57
Dopo aver creato una lista in questo modo
struct nodo {char nome[30];
struct nodo *prossimo;};
typedef struct nodo PERSONA;
typedef PERSONA *link;
link testa=NULL;
link nuovo=NULL;
Vorrei passare testa e nuovo ad una function ma non ci riesco.
Ho provato in questo modo
void inserire_testa(link testa,link nuovo);
ma non funziona sapreste guidarmi?
DanieleC88
02-09-2008, 20:48
E di cosa si lamenta precisamente il compilatore?
Prince_81
02-09-2008, 22:42
visual c++ 2008 dice che nella function che vado ad utilizzare
void inserire_testa(link testa,link nuovo){
c'è il seguente errore error C2059: errore di sintassi: 'tipo'
sottovento
03-09-2008, 09:15
visual c++ 2008 dice che nella function che vado ad utilizzare
void inserire_testa(link testa,link nuovo){
c'è il seguente errore error C2059: errore di sintassi: 'tipo'
Pubblica un pezzo di codice in piu'.
Comunque, e' chiaro che devi fare una modifica alla tua funzione: a seguito dell'inserimento in testa, andrai a modifcare il parametro "testa".
Nel prototipo che hai postato, questa modifica non e' permessa (meglio: e' permessa ma non verra' presa in considerazione una volta completata la funzione).
Devi quindi modificare la inserire_testa() in modo che la modifica del puntatore a testa possa essere fattibile.
Prince_81
03-09-2008, 12:29
Questo è il codice completo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
struct nodo {char nome[30];
struct nodo *prossimo;};
typedef struct nodo PERSONA;
typedef PERSONA *link;
link testa=NULL;
link nuovo=NULL;
void inserire_testa(link testa,link nuovo);
void main ()
{
int menu;
testa=NULL;
do{
puts("1)Per inserire dato in testa alla lista");
scanf("%d",&menu);
//questo switch è incompleto
switch (menu){
case 1:inserire_testa(testa,nuovo);break;
}while(1);
}
void inserire_testa(link testa,link nuovo){
nuovo=(link)malloc(sizeof(PERSONA));
nuovo->prossimo=testa;
testa=nuovo;
strcpy(nuovo->nome,"Giacomo");
}
sottovento
03-09-2008, 14:12
C'e' un errore di sintassi, ti manca la chiusura di una graffa per lo switch.
Ah! Poi il main deve ritornare un int, non farlo void
Prince_81
03-09-2008, 17:49
Grazie sottovento a volte è vero che sono gli errori più stupidi a farti perdere tempo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.