Questa e' una domanda piu' da ../programmazione, ma vabbehOriginariamente inviato da Lyn
Sto sperimentando i puntatori. Ho riletto due volte il capitolo e non ne ho ancora colto l'uso pratico.![]()
Uh, vista la domanda, piuttosto che ridire le solite cose introduttive sui puntatori, provo a cambiare approccio (sperando sia corretto)
Dato che nel seguito andro' fuori dal seminato, ti invito comunque a rileggere il tuo testo di riferimento
Un puntatore puo' servire sostanzialmente a dare un'altro nome ad un oggetto, o a fornirne uno ad un oggetto anonimo.
'Oggetto' in senso lato ovviamente.
Prendiamo il caso di malloc(): ritorna un blocco anonimo di memoria, quindi per referenziarlo ho bisogno di assegnargli un nome. Infatti se scrivo
ottengo il mio blocco di memoria di 'size' byte, ma lo perdo subito perche' non so come referenziarlo.codice:malloc(size)
Per poterlo 'riutilizzare' in seguito serve dargli un nome:
adesso posso agire sul blocco allocato usando il nuovo nome, ovvero il puntatorecodice:void *p = malloc(size)
Oppure posso usare i puntatori per dare un nuovo nome ad un oggetto gia' esistente:
e cosi' via. Utilerrimi i puntatori a funzione, ma questi credo li troverai piu' avanti.codice:int a = 42; int *pa = &a;
Ovviamente questo sproloquio^Wdiscorso va integrato e rivisto criticamente alla luce di un buon manuale di C, perche' non intende rispondere alla domanda 'cosa sono e come si usano i puntatori in C' (infatti ho omesso di parlare di deferenziazione, aritmetica dei puntatori, operatore indirizzo-di, ho tralasciato l'esempio classico sulla visione della memoria secondo il C, le relazioni tra array e puntatori, etc. etc.), bensi' alla domanda 'come, in senso lato, puo' essermi utile il concetto di puntatore'.
Spero di non aver peggiorato la situazione![]()



)
Rispondi quotando
