Lucidazioni sui puntatori

di il
1 risposte

Lucidazioni sui puntatori

Se io ho :
typedef
struct {
          char contenuto[maxdim];
          char valore[maxdim];
       }E;        


struct nodo{        
             E elem;
             nodo *next;   
           };

typedef  nodo *p;  
E poi nel main dichiaro :
p testa=NULL;

come posso visualizzare nella mia mente, testa? So che si trova nella memoria statica. Però non capisco come immaginare testa=NULL e poi svolgendo una funzione di inserimento (nell'heap), questa testa diventa la testa della lista nell'heap.
Come immagino tuttò ciò con un grafico logico?

1 Risposte

  • Re: Lucidazioni sui puntatori

    Testa è solo un puntatore ovvero punta alla locazione di memoria che a te sembra giusta. testa = NULL; sta a dire che sto puntatore punta a nulla. Durante l'inserimento tu fai:
    testa = nod o che ne so. A quel punto il debugger ti mostrerà che testa = 0x3252623 (numeri sparati a caso) che sta a dire che testa punta alla locazione di memoria occupata da nod. i vari nodo*next fanno i legami logici di una lista o altro contenitire. quindi il next non è altro che un puntatore al prossimo oggetto dello stesso tipo che tu puoi attraversare faccendo ptr = ptr->next in un loop. Una rappresentazione grafica lo trovi quì:
    http://it.wikipedia.org/wiki/Lista_concatenat
Devi accedere o registrarti per scrivere nel forum
1 risposte