Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/03/2013, 05:46
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: [C++] Duda con new y delete o delete[]

Cita:
Iniciado por vosk Ver Mensaje
Por un fin de llave y de scope:

Si deja de ser utilizable por fin de llave y de scope entonces no será necesario.

En el caso del ejemplo no es necesario, porque liberas el puntero y sales de la aplicacion.
Me referia a un caso como este:

Código:
void Ejemplo()
{
  int** Cosita;

  //...

  delete[] Cosita;
}
Despues del delete, el puntero "desaparece" porque finaliza su ambito. No es posible cometer ningún error porque ya no existe el puntero.

Para el resto de los casos si habría que poner el NULL claro ;)

Cita:
pero me parece muy extraño el tener comportamientos diferentes con el mismo codigo, nunca me habia pasado xD. Quiero arreglarlo, me hace sentir que el codigo no es estable...
Asi son los punteros, lo pruebas una vez y parece que funcionan. Luego al día siguiente fallan. No esque los punteros sean inestables, es que si se usan mal pueden ser muy engañosos.

El bad alloc suele lanzarse cuando no se puede reservar la memoria... Cuantos elementos has reservado? Has puesto algun tipo de bucle infinito?