Ho finalmente scritto la mia prima lista dinamica in C senza usare l' array che veniva riallocato.
Ho capito che ci sono alcuni vantaggi effettivi,come ad esempio la semplicità nell' allocarne uno nuovo,ma adesso per esempio ho fatto una lista usando una static int,la funzione semplice è di contare da 0 fino a 100,eccola qua:
codice:
typedef struct node
{
int value;
struct node *next;
}item;
item *create(item *pointer);
int main (int argc,char **agrv)
{
item stack;
item *pointer;
int i;
pointer=&stack;
(*pointer).value=0;
(*pointer).next=NULL;
for(i=0;i<100;i++)
{
(*pointer).next=create((*pointer).next);
pointer=(*pointer).next;
}
pointer=&stack;
for(i=0;i<101;i++)
{
printf("%d,",(*pointer).value);
pointer=(*pointer).next;
}
return 0;
}
item *create (item *pointer)
{
static int s_value=0;
s_value++;
pointer=(item*)malloc(sizeof(item));
(*pointer).value=s_value;
(*pointer).next=NULL;
return pointer;
}
Adesso come faccio se voglio fare ad esempio un ordinamento per avere tutti i valori al contrario?
Con l' array fisso potevo farlo semplicemente,ma qua proprio non riesco