Foo* set = new Foo[100];
//...
delete [] set;
No pasa los límites de la matriz a delete[]
. Pero, ¿dónde se almacena esa información? ¿Está estandarizado?
Solución del problema
When you allocate memory on the heap, your allocator will keep track of how much memory you have allocated. This is usually stored in a "head" segment just before the memory that you get allocated. That way when it's time to free the memory, the de-allocator knows exactly how much memory to free.
No hay comentarios:
Publicar un comentario