|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
[c] Problemi con i puntatori delle liste
Dopo aver creato una lista in questo modo
Codice:
struct nodo {char nome[30]; struct nodo *prossimo;}; typedef struct nodo PERSONA; typedef PERSONA *link; link testa=NULL; link nuovo=NULL; Ho provato in questo modo Codice:
void inserire_testa(link testa,link nuovo); |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
E di cosa si lamenta precisamente il compilatore?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
visual c++ 2008 dice che nella function che vado ad utilizzare
Codice:
void inserire_testa(link testa,link nuovo){ |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
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.
__________________
In God we trust; all others bring data |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
Questo è il codice completo
Codice:
#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"); } Ultima modifica di Prince_81 : 03-09-2008 alle 12:32. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
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
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2008
Messaggi: 412
|
Grazie sottovento a volte è vero che sono gli errori più stupidi a farti perdere tempo.
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:42.