¿Por qué hay un delete[]
? Según mi entender, se comporta de manera diferente para las matrices. Sin embargo, ¿por qué existe realmente? Solo está disponible en C y no en free_array. También en sintaxis, la única diferencia entre delete var
y delete []var
es []
que no tiene params (no estoy diciendo la longitud de la matriz).¿Por qué hay una eliminación [] en C++?
¿Por qué realmente existe delete[]
? Sé que alguien dirá que puede sobrecargar delete
y delete[]
(al menos eso creo que es posible) pero digamos que no lo estamos sobrecargando. ¿Por qué existe?
La razón obvia para que delete [] sea es que llamará a destructores para los elementos de la matriz. Ver http://stackoverflow.com/questions/659270/why-is-there-a-special-new-and-delete-for-arrays –
Quizás una pregunta más interesante sería por qué 'delete []' (and 'new [] ') existen cuando tienes' std :: vector'. – jamesdlin
@jamesdlin: ¿Porque no siempre tenemos 'std :: vector'? ¿Y porque 'std :: vector' no funcionaría sin ellos? –