Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C/C++] domanda su `new' o `malloc'

    Ciao...
    Leggo da tutte le parti che new (o, se preferite il C, malloc) e' importantissimo nel C++.
    Ma esattamente quali vantaggi e svantaggi ha, e quando è bene utilizzarlo?

    - Se ho bisogno di due variabili che contengono le dimensioni di una finestra, è buona cosa creare queste variabili col new, e deletarle subito dopo aver creato la finestra?

    - Se mi serve una variabile temporanea, per invertire il contenuto di due variabili:
    tmp = a;
    a = b;
    b = tmp;
    è bene liberare la memoria allocata da tmp quando non serve più?

    - Se devo fare un gioco che richiede molte variabili, ma che non servono quando esco dal gioco vero e proprio e torno nel menù principale, è bene liberare la memoria occupata da queste variabili quando non servono più o no?

    Grazie
    Puffolott0

  2. #2
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    new serve per dare un'oggetto la giusta dimensione in memoria ed è applicabile solo ai puntatori.

    esempio:

    int *a;
    a = new int[50];

    definisce un array da 50 interi.
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  3. #3
    Originariamente inviato da pixer
    new serve per dare un'oggetto la giusta dimensione in memoria ed è applicabile solo ai puntatori.

    esempio:

    int *a;
    a = new int[50];

    definisce un array da 50 interi.
    Ma esattamente perchè dovrei preferire il pezzo di codice:
    int *a;
    a = new int[50];

    al pezzo di codice:
    int a[50];
    ?

    :master:

  4. #4
    Utente di HTML.it L'avatar di pixer
    Registrato dal
    Oct 2000
    Messaggi
    614
    Originariamente inviato da Puffolott0
    Ma esattamente perchè dovrei preferire il pezzo di codice:
    int *a;
    a = new int[50];

    al pezzo di codice:
    int a[50];
    ?

    :master:
    con new puoi definire dinamicamente la dimensione dell'oggetto, ovvero al momento dell'esecuzione del programma.
    MySQL Worker - The OpenSource Multiplatform MySQL database Administrator (C++ powered)
    .:[ It resumes the development !! ]:.


  5. #5
    Originariamente inviato da pixer
    con new puoi definire dinamicamente la dimensione dell'oggetto, ovvero al momento dell'esecuzione del programma.
    Uhm... Scusa ma non ho ancora ben capito...
    Ho letto una guida on-line sul c++ un pò di tempo fa, ma quello sull'allocazione della memoria è uno dei pezzi che ho compreso meno...
    Ho letto che usare new e delete permette di allocare in memoria una variabile e poi di levarcela liberando i bit che occupava... Giusto?
    Se sì... Tra i tre esempi che ho fatto prima, quando è bene usarla, e quando non serve a nulla o è addirittura controproducente?
    In pratica... Quand'è che conviene usare new per creare una variabile e quando conviene farlo col metodo "classico"?

    Scusa se rompo, ma mi garberebbe imparare ad usare new e delete correttamente

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.