Preguntas etiquetadas con free

17
¿Qué pasa REALMENTE cuando no liberas después de Malloc?
Esto ha sido algo que me ha molestado por años. A todos nos enseñan en la escuela (al menos, yo era) que DEBES liberar cada puntero asignado. Sin embargo, tengo un poco de curiosidad sobre el costo real de no liberar memoria. En algunos casos obvios, como cuando mallocse llama …
538 c  malloc  free 

11
¿Cómo sabe free cuánto cuesta liberar?
En la programación en C, puede pasar cualquier tipo de puntero que desee como argumento para liberar, ¿cómo sabe el tamaño de la memoria asignada para liberar? Cada vez que paso un puntero a alguna función, también tengo que pasar el tamaño (es decir, un conjunto de 10 elementos necesita …
385 c  size  pointers  free 

13
¿Cómo funcionan malloc () y free ()?
Quiero saber cómo mallocy freetrabajar. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Estaría realmente agradecido si la respuesta es …


10
¿Free (ptr) donde ptr es NULL daña la memoria?
Teóricamente puedo decir que free(ptr); free(ptr); es una corrupción de la memoria ya que estamos liberando la memoria que ya se ha liberado. Pero que si free(ptr); ptr=NULL; free(ptr); Como el sistema operativo se comportará de una manera indefinida, no puedo obtener un análisis teórico real de lo que está …

8
Cómo localizar un error "doble libre o corrupto"
Cuando ejecuto mi programa (C ++), se bloquea con este error. * glibc detectado * ./load: doble libre o corrupción (! prev): 0x0000000000c6ed50 *** ¿Cómo puedo localizar el error? Intenté usar std::coutdeclaraciones print ( ), sin éxito. ¿Podría gdbhacer esto más fácil?
92 c++  c  debugging  free 


3
¿Por qué anular el valor de retorno de free?
Estoy leyendo un libro ( Programación con hilos POSIX de Butenhof, 1997) que usa C, y me encontré con la siguiente línea: (void)free(data); Aquí, dataes solo un puntero a una estructura asignada, data = malloc(sizeof(my_struct_t)); ¿Por qué es el resultado de freeser lanzado a void? Desde mi entendimiento de C, …
82 c  casting  free  void  legacy-code 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.