Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    [C] Aiuto su allocazione dinamica della memoria

    ciao, volevo sapere se si può realizzare un programma che allochi una quantità di memoria prestabilita e che rimanga allocata anche alla fine dell'esecuzione del programma stesso...io ho appena iniziato a studiare l'allocazione dinamica della memoria e a quanto ho capito, in genere, una volta allocata la memoria, prima di terminare il programma o anche appena la mem allocata non è serve più, bisogna liberarla al sistema con la funzione FREE()...giusto? io ho provato a non mettere questa funzione...ma appena il programma termina, la memoria allocata, torna ugualmente allo stato iniziale.
    Spero di aver esposto il mio problema abbastanza chiaramente...se c'è qualcosa espressa in modo contorto...ditemelo così mi spiego meglio...
    Grazie
    MrX

  2. #2
    Al termine del programma tutta la memoria che è stata allocata dal programma viene liberata automaticamente (dal momento che il processo termina e il suo spazio di indirizzi cessa di esistere), ma questo non è un buon motivo per non usare la free(): in programmi anche solo poco più grandi di un "hello world" il non liberare la memoria può essere causa di problemi (i memory leak sono uno dei problemi più subdoli che possono capitare), ad esempio può condurre al rallentamento dell'applicazione e del computer in generale.
    volevo sapere se si può realizzare un programma che allochi una quantità di memoria prestabilita e che rimanga allocata anche alla fine dell'esecuzione del programma stesso
    Questo non ha nessun senso per il motivo citato sopra.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    re

    okay...grazie mille della risposta...ma cmq...era solo una informazione...così un pensiero che mi era venuto per la testa...e volevo sapere solo se si poteva fare....
    ciao a presto

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: re

    Originariamente inviato da MrX87
    okay...grazie mille della risposta...ma cmq...era solo una informazione...così un pensiero che mi era venuto per la testa...e volevo sapere solo se si poteva fare....
    ciao a presto
    Quello che sarebbe interessante e' sapere qual era il "pensiero che ti era venuto" collegato a questa cosa ... cioe', se fosse stato possibile, cosa ci avresti fatto?

  5. #5
    Però ripensandoci si può fare una cosa del genere con i memory mapped file... :master:
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con i MMF e' possibile allocare memoria condivisa tra processi. Ma quando l'ultimo processo che condivide la memoria termina, vengono chiusi tutti i suoi handle, compresi quelli dei MMF aperti in precedenza. Se non e' l'ultimo processo, allora la memoria resta allocata, ma proprio perche' c'e' un altro processo che la utilizza ...

  7. #7
    ...e creando un thread "remoto" in un processo di sistema?

  8. #8
    Originariamente inviato da oregon
    Ma quando l'ultimo processo che condivide la memoria termina, vengono chiusi tutti i suoi handle, compresi quelli dei MMF aperti in precedenza.
    Giusto, non avevo tenuto conto di questo fatto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da pallinopinco
    ...e creando un thread "remoto" in un processo di sistema?
    Cosi' crei solamente il thread remoto (ammesso che tu ne abbia i diritti, specialmente all'interno dello spazio di indirizzamento di un processo di sistema ...) ma NON crei memoria ...

    A meno che il thread in questione non crei lui della memoria ... e poi cosa te ne fai?

    Insomma ... il concetto principale e' ... "no processo no memoria" ...

  10. #10
    A meno che il thread in questione non crei lui della memoria ... e poi cosa te ne fai?
    L'idea è quella di allocare della memoria in un thread remote iniettato in Explorer (gira nello spazio dell'utente), l'obiettivo in fondo è quello di creare volontariamente un memory leak, no?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.