|
|||||||
|
|
|
![]() |
|
|
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 13: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: 18:27.



















