|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Creazione di una lista a partire da un vettore (Ricorsiva)
Non capisco perchè questo programma funziona perfettamente su un computer mentre su tutti gli altri computer dove l'ho provato stampa soltanto " NULL". Cosa c'è di sbagliato?
Codice HTML:
#include <stdio.h> #include <stdlib.h> struct nodo{ int data; struct nodo *next;}; typedef struct nodo nodo; typedef struct nodo *listaPtr; listaPtr Creazione(listaPtr L, int v[], int n, int i){ listaPtr nuovo; nuovo=(listaPtr)malloc(sizeof(nodo)); nuovo->data=v[i]; nuovo=nuovo->next; if(i==n-1){ nuovo=NULL;}else{ return Creazione(L,v,n,i+1);} return nuovo;} void Stampa(listaPtr L){ while(L!=NULL){ printf(" %d ->", L->data); L=L->next;} printf(" NULL\n"); } int main(void){ int i=0; int n=0; printf("Inserisci la lunghezza del vettore v:\n"); scanf("%d", &n); int v[n]; printf("Inserisci gli n elementi del vettore v:\n"); for(i=0;i<n;i++){ scanf("%d", &v[i]);} listaPtr L; L=NULL; i=0; L=Creazione(L,v,n,i); Stampa(L); system("PAUSE"); return 0;} |
![]() |
![]() |
![]() |
#2 |
Registered User
Iscritto dal: Feb 2008
Messaggi: 77
|
Non ho provato a compilarlo ma a prima vista mi sa che la riga
Codice:
main { ... int v[n]; } Codice:
int *v = (int *)calloc(n,sizeof(int)); if(v) { ... free(v); } ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
nono, a compilare compila. solo che su un computer funziona bene, su tutti gli altri computer dove l'ho provato invece stampa solo NULL
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:45.