codice:
#include <stdio.h>
#include <stdlib.h>
#define n 10
struct elemento creaLista();
void stampaLista(struct elemento *);
struct elemento
{
int inf;
struct elemento *ptr;
};
struct elemento creaLista()
{
struct elemento *p,*punt;
int i;
if(n==0) //Se gli elementi della lista saranno 0 creiamo una lista vuota
p=NULL;
else
{
p=(struct elemento*)malloc(sizeof(struct elemento));
puts("Inserisci il primo valore:");
scanf("%d",&p->inf);
punt=p;
for(i=2;i<=n;i++)
{
punt->ptr=(struct elemento*)malloc(sizeof(struct elemento));
punt=punt->ptr;
printf("Inserisci il %d elemento:\n",i);
scanf("%d",&punt->inf);
}
punt->ptr=NULL; //fine della lista
}
return (*p);
}
void stampaLista(struct elemento*p)
{
while(p!=NULL)
{
printf("%d",p->inf);
puts("--->");
p=p->ptr;
}
}
int main(void)
{
struct elemento *lista;
lista=creaLista();
stampaLista(lista);
}
Quando compilo mi da questo errore:
codice:
48: error: incompatible types when assigning to type ‘struct elemento *’ from type ‘struct elemento’
A cosa è dovuto?