|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2009
Messaggi: 29
|
Cosa c'è di sbagliato in questa lista scritta in C?
Salve ragazzi, ho urgente bisogno di trovare l'errore. Se non scrivo la funzione "void inseriscitesta" il programma funziona alla perfezione, ma se voglio creare la funzione per dare un pò di ordine non riesco a passare la lista alla funzione correttamente. Suggerimenti?
#include <stdio.h> #include <stdlib.h> #include <string.h> struct numeri{ int elemento; struct numeri *succ; }; void inseriscitesta(struct numeri*); void stampalista (struct numeri* il); int main(int argc, char *argv[]) { int y; struct numeri* il=NULL; il= malloc (sizeof (struct numeri)); il->succ=NULL; printf ("Digita 1 per inserire un numero, altrimenti digita 0\n"); scanf ("%d", &y); if (y==1) {printf ("Inserisci il nuemero:\n"); scanf ("%d", &il->elemento);} printf ("Digita 1 per inserire un numero, altrimenti digita 0\n"); scanf ("%d", &y); while (y==1) { inseriscitesta(il); } while ( il!=NULL) { printf ("%d ---->", il->elemento); il=il->succ;} system("PAUSE"); return 0; } void inseriscitesta(&il){ struct numeri* p2 = NULL; p2= malloc (sizeof(struct numeri)); p2->succ=NULL; printf ("Digita il numero da inserire:\n"); scanf ("%d", &p2->elemento); p2->succ = il; il = p2; printf ("Digita 1 per inserire un numero, altrimenti digita 0\n"); scanf ("%d", &y);} |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2009
Messaggi: 638
|
Prima di tutto: indenta correttamente il codice e racchiudilo nei tag CODE.
Secondo: i prototipi di inseriscitesta sono sbagliati, sia prima del main sia nell'implementazione. Terzo: se vuoi modificare il valore del puntatore passato alla funzione, devi passarlo anch'esso come puntatore, ovvero alla funzione devi passare un puntatore di un puntatore alla struttura (ti lascio capire come farlo). |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:20.





















