Hai provato?Originariamente inviato da XWolverineX
Ora che ci penso
Cosa succede? Allochi una quantità sbagliata?codice:int *a = new char;
Il compilatore ti da' un errore in fase di compilazione ...
Quasi ... per essere precisi, dato che il tipo di puntatore restituito dalla malloc e' void, devi scrivereOriginariamente inviato da XWolverineX
In C invece si faceva cosi, giusto?
codice:int *a = malloc ( sizeof( int ) );
int *a = (int *)malloc(sizeof(int));
Nel caso in cui la malloc non possa restituire la quantita' di memoria richiesta, restituisce un valore NULL da cui ti accorgi che l'operazione e' fallita.Originariamente inviato da XWolverineX
Mettiamo caso che sono pazzo, voglio fare un programma che allochi tutta la memoria del pc e quindi lo faccio bloccare.
Come si deve fare?
Una cosa cosi può andare bene?codice:void *a = malloc ( 1023982109382109380913821 );
Se riesci ad allocare la memoria, vuol dire che questa era disponibile e quindi non "blocchi" il computer ...
Semmai, tutti gli altri programmi avviati in seguito, daranno un errore se allocano memoria ...
Un Garbage Collector e' un codice estremamente complesso.Originariamente inviato da XWolverineX
Altra domanda...
Il garbage collector di java e c# gestiscono in automatico la memoria e la liberano ogni volta che tutti i riferimenti a un oggetto scompaiono. Ho sentito che anche il C++ si può dotare di un Garbage Collector...sapete dove e come?
Come funziona il garbage collector?
Un esempio di codice?
Non si puo' fornire un esempio in un post in un forum ...