Una memoria allocatore non è livello inferiore rispettomalloc
. (L'allocatore predefinito chiama in genere malloc
direttamente o indirettamente)
Un allocatore consente solo di specificare diverse strategie di allocazione. Ad esempio, è possibile utilizzare un allocatore che chiama una volta malloc
per recuperare un grande pool di memoria e quindi per le richieste di allocazione successive, restituisce solo una piccola porzione di questo pool.
Oppure è possibile utilizzarlo come un gancio per consentire di eseguire un compito aggiuntivo ogni volta che la memoria viene allocata o liberata.
Per quanto riguarda la seconda domanda, malloc
è il più basso possibile senza perdere la portabilità. malloc
viene in genere implementato utilizzando una funzione di allocazione della memoria specifica del sistema operativo, in modo tale che il livello sia inferiore. Ma questo non è correlato alla tua domanda principale, poiché gli allocatori C++ sono un'astrazione di livello superiore.
@muntoo: che non menziona ripartitori a tutti. – jalf
@jalf Sto ancora imparando a leggere. –