xbubbax
03-03-2008, 10:56
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?
#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;}
#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;}