Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447

    I puntatori

    Sono diverse settimane da quando ho iniziato a studiare il c++ e adesso mi sono imbattuto nei puntatori. Scusate la mia ignoranza ma non riesco a intuire quale sia il guadagno dell'uso di questi ultimi; l'unico vantaggio che ho notato è nella gestione delle stringhe. Grazie anticipatamente per le eventuali delucidazioni.

  2. #2
    • Passaggio per indirizzo;
    • Allocazione dinamica;

  3. #3
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Scusami potresti spiegarmi i vantaggi di queste due potenzialità?GRAZIE

  4. #4
    Il passaggio per indirizzo consente di passare a delle funzioni dei parametri non come una copia delle variabili passate, ma come un riferimento ad esse; in questa maniera la funzione può modificare i parametri, senza contare che il passaggio per riferimento, specie quando i parametri sono grosse strutture, può velocizzare la chiamata alla funzione e far risparmiare memoria.

    Sullo stack è possibile allocare solo quantità di memoria determinate a compile-time; questo significa che (in linea di massima) se la dimensione di un buffer è nota solo a runtime non puoi allocarlo "normalmente" sullo stack. L'allocazione dinamica invece consente di allocare una quantità di memoria arbitraria (sempre ovviamente nei limiti della memoria - fisica o virtuale che sia - disponibile) definita a runtime.

    I puntatori comunque hanno anche diversi altri utilizzi, ad esempio quelli relativi agli array.
    ... ma non dimentichiamoci dei puntatori a funzione...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Il linguaggio va specificato obbligatoriamente anche nel titolo, come prevede il Regolamento.

    L'ho aggiunto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Il vantaggio dei puntatori è quello di non dover allocare memoria "inutile" ad esempio quando si passa un vettore ad una funzione è consigliato passare il puntatore al primo elemento del vettore anzichè tutto il vettore, quest'ultima opzione andrebbe a creare un altro vettore "locale" all'interno della funzione e quindi memoria in più...

    Lo svantaggio dell'utilizzo dei puntatori credo sia il fatto di dover essere molto decisi su dove e come operare..i puntatori agiscono sulla memoria ed è quindi d'obbligo fare con cautela

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    286
    Lo svantaggio dell'utilizzo dei puntatori credo sia il fatto di dover essere molto decisi su dove e come operare..i puntatori agiscono sulla memoria ed è quindi d'obbligo fare con cautela
    Visto che si parla di C++, è il caso di ricordare che è buona norma di programmazione utilizzare i refernce al posto dei puntatori, soprattutto per il passaggio di variabili a funzioni, e limitare l'utilizzo dei puntatori solo dove non se ne può fare a meno.
    Questo facilita un codice più leggibile e soprattutto più sicuro. Altra buona norma è quella di proteggere con const sia i puntatori che i riferimenti.
    Tuttavia anche i reference non sono immuini da inconvenienti, bisognerà ricordare di non utilizzarli con oggetti che possono assumere valore NULL, dunque non con oggetti locali e nemmeno con oggetti che possono andare fuori portata (out o scope).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.