Delucidazioni sui puntatori

di il
6 risposte

Delucidazioni sui puntatori

Ho iniziato a studiare il C++ e sono arrivato alla faccenda dei puntatori. Premetto che vengo dal PHP quindi questi "problemi" non esistemvano

Ho scritto un po' di codice di prova
#include <iostream>

using namespace std;

main(){
    
    int x = 20;
    
    int* puntatore = NULL;
    int* puntatoreX = &x;
    
    puntatore = new int;
    
    *puntatore = 10;
    
    cout << *puntatore << endl;
    cout << *puntatoreX << endl;
    
    delete puntatore;

}
Io alla variabile dichiarata normalmente va a finire nella memoria Stack, ma non posso né cancellarla né modificarla durante l'esecuzione del programma, posso creare un puntatore ad essa e posso quindi modificarla ma poi va a finire nell'Heap?
Se volessi usare solo la memoria nell'Heap dovrei usare solo i puntatori? Cioè una cosa del genere?
 int* puntatore = NULL;
puntatore = new int;
*puntatore = 10;
Mi sembra un po' prolisso: 3 righe per una variabile? Ma poi sarebbe giusto come metodo (pulito)?
Inoltre con questo metodo se non usassi alla fine
delete puntatore;
Cosa accade? La variabile rimane nell'Heap e non viene cancellata? Se fosse così ammettendo di eseguire il programma molte volte si arriverebbe ad una progressiva saturazione della ram fino a che non si esegua un reboot del sistema giusto?

Scusate tutte queste domande, ma devo dire che sono un po' confuso.

Ah, un'altra cosa using namespace std; a cosa serve? Nella guida che sto seguendo lo usa, ma non lo spiega. Ho provato ad ometterlo, ma si rifiuta di compilare come se le funzioni non fossero mai state dichiarate, eppure la libreria iostream la avrebbe dovuta caricare, sarò noioso, ma non mi va di ripetere le cose a pappagallo senza sapere cosa succede.

Grazie a chi saprà/vorrà rispondermi.

Ciao!

6 Risposte

  • Re: Delucidazioni sui puntatori

    Scusa ma pensi che questa frase

    marcomg ha scritto:


    Io alla variabile dichiarata normalmente va a finire nella memoria Stack, ma non posso né cancellarla né modificarla durante l'esecuzione del programma, posso creare un puntatore ad essa e posso quindi modificarla ma poi va a finire nell'Heap?
    sia comprensibile in italiano?
  • Re: Delucidazioni sui puntatori

    Ok, conosci qualche guida sui puntatori?
  • Re: Delucidazioni sui puntatori

    No ... ma sono sicuro che in un qualunque libro di C i puntatori hanno dedicato dei capitoli e sono spiegati.

    Personalmente ho sempre imparato dai libri, non dalle guide su internet.
  • Re: Delucidazioni sui puntatori

    Bene, allora aspetto quancun'altro che magari conosca qualche buona guida, grazie lo stesso
  • Re: Delucidazioni sui puntatori

    Io sinceramente non so risponderti con precisione alla domanda ma ti mando il link a questa guida fantastica e prolissa sul C++ potrebbe esserti molto utile, non ricordo bene se nello specifico risponde alla tua domanda ma descrive molto bene un po tutto ciò che riguarda il c++ ed ha ottimi esercizi di verifica.
  • Re: Delucidazioni sui puntatori

    Ti ringrazio molto per la guida, sembra veramene ben fatta!
    Ciao
Devi accedere o registrarti per scrivere nel forum
6 risposte