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

    allocare memoria in c++

    Salve a tutti,
    qualcuno di voi sa risolvermi questo semplice quesito?
    Se alloco memoria dinamicamente all'interno di una funzione con l'operatore new, quando esco dalla funzione viene "distrutta" la memoria o continua ad esistere fino a quando non chiamo l'operatore delete?

    In pratica posso fare qualcosa del genere?

    char * miafunzione (void) {
    char *miastringa;
    miastringa = new char[10];
    return miastringa;
    }

    Il puntatore continua a vivere fuori dalla funzione?
    grazie a chi mi rispondera'
    Emanuele

  2. #2
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Devi comunque deallocare la memoria, altrimenti il puntatore dichiarato all'interno della funzione cessa di esistere ma la memoria resta allocata e... inutile


    Linux user number 403381

    Stop TCPA!

  3. #3
    grazie per la risposta celere...
    quello che non ho capito però è se posso usare il puntatore ritornato dalla funzione e deallocare la memoria in un secondo momento (all'uscita della main)

  4. #4
    si puoi farlo, poi successivamente con delete [] (perchè è un array) potrai deallocarlo

  5. #5
    per stare più tranquilli occorre usare uun gestore delle eccezioni come try - catch così se la memoria non è più disponibile non fai impallare tutto il programma se non il sistema.
    vuoi giocare al fantacalcio gratis, solo per divertirti con tante altre persone? clicca su http://www.fantamagic.it

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.