Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] Puntatori

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2017
    Messaggi
    0

    [C++] Puntatori

    Salve a tutti.

    Sto imparando il C++ da un pò di tempo.
    Ma ancora non mi è chiaro l'utilizzo dei puntatori, dove e perché applicarli.

    Sò benissimo a cosa servono. ( puntare determinate celle di memoria o un oggetto)

    Sò utilizzarli, dichiararli e manipolarli. Ma ancora non capisco il loro uso
    principalmente dove venga fatto.

    Mi spiego meglio...

    Se voglio modificare un determinato valore ad un certo indirizzo di memoria.
    Sò che bisogna muoversi in un determinato modo.

    Un esempio.
    Codice PHP:

    DWORD indirizzo 
    0x004D2038;
    DWORD offset 0x3c;
    int valore

    DWORD valore_indirizzo 
    ReadProcessMemory(_hwnd,(void*)indirizzo+offset,&valore,sizeof(valore),NULL); 
    Altro esempio


    Codice PHP:

    struct blocco
    {
      
    int id;
      
    int x;
      
    int y;
    }

    QList<blocco> *blocchi = new QList<blocco>();



    blocco b;
    b.id 0;
    b.10;
    b.10;

    bloccchi->Insert(0,b); 

    in questo esempio ho dichiarato blocchi come puntatore.
    ma avrebbe funzionato ugualmente anche se non fosse stato un puntatore.

    stessa cosa se provo ad istanziare una classe.

    Posso farlo sia con un puntatore o una normalissima variabile.
    Ed in infine per ottenere sempre la stessa e medesima funzione o oggetto.
    La domanda che mi viene da chiedere è:

    Perché utilizzarli quando si può anche evitare di farlo?

    chiedo scusa se magari potete interpretare il mio messaggio come da ignorante.
    Ma vorrei solo capire dove e come utilizzarli ma sopratutto perché utilizzarli.
    Mi sarebbe di aiuto anche una breve guida.
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Implementa una lista concatenata semplice
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Se passi una variabile, questa viene passata "per copia", con conseguente raddoppio nell'uso di memoria.
    Se, invece, passi un puntatore, la variabile non viene sdoppiata, stai passando una referenza a quell'allocazione di memoria.

    I puntatori, quindi, ti consentono di risparmiare memoria e di poter "lavorare" su un unica allocazione di memoria da punti/ambiti del software diversi.

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.