estaba leyendo esto: http://en.wikipedia.org/wiki/Thread_safetySeguridad de los hilos con el montón de memoria asignada
Es la función siguiente hilo de seguridad?
void foo(int y){
int * x = new int[50];
/*...do some stuff with the allocated memory...*/
delete [] x;
}
En el artículo dice que para que sea seguro para subprocesos solo puede usar variables de la pila. De Verdad? ¿Por qué? ¿Las llamadas subsecuentes de la función anterior no asignarían memoria a otra parte?
Editar: Ah. Parece que leí mal esta parte del artículo:
Una subrutina es reentrante, y por lo tanto seguro para subprocesos, si
- las únicas variables que utiliza son de la pila
(Lo tomé en el sentido de
Una subrutina es reentrante, y por lo tanto seguro para subprocesos, si y sólo si
- las únicas variables que utiliza son de la pila
, que de acuerdo con las respuestas a continuación, no es el caso)
Use 'delete []' para arrays no 'delete' –
@Brian: Woops - gracias. Agregué la parte de la matriz después de que ya había tipeado la función, para dejar en claro que estaba asignando memoria dinámicamente, pero olvidé agregar las []. +1 :) – Cam
Es sorprendente ver el uso extendido de wikipedia como LA referencia para conceptos de programación :) – ch0kee