Articles of malloc

¿Debo verificar si malloc () fue exitoso?

¿Debería uno verificar después de cada malloc () si fue exitoso? ¿Es posible que un malloc () falle? ¿Qué pasa entonces? En la escuela nos dijeron que deberíamos verificar, es decir: arr = (int) malloc(sizeof(int)*x*y); if(arr==NULL){ printf(“Error. Allocation was unsuccessful. \n”); return 1; } ¿Cuál es la práctica con respecto a esto? ¿Puedo hacerlo de […]

malloc: *** error: sum de comprobación incorrecta para objeto liberado – objeto probablemente fue modificado después de ser liberado

Tengo un gran problema con mi aplicación de iOS: se cuelga a veces sin un error de depuración detallado. El seguimiento de la stack está vacío. Estas son las dos únicas líneas en el rastro de la stack: crash start en UIApplicationMain en “stub de símbolo para: – [_ UIHostedTextServiceSession dismissTextServiceAnimated:]”. e informe “libsystem_c.dylib`malloc_error_break”. en […]

¿Por qué lanzamos el valor de retorno de malloc?

¿Podría alguien explicarme por qué algunos progtwigdores usan (char *) delante del malloc? Sé que vuelve vacío, pero ¿por qué quiero que vuelva solo la memoria char? Lo siento, solo soy un novato en progtwigción. Gracias

malloc implementación?

Estoy intentando implementar malloc y free C, y no estoy seguro de cómo reutilizar la memoria. Actualmente tengo una struct que se ve así: typedef struct _mem_dictionary { void *addr; size_t size; int freed; } mem_dictionary; Mi malloc ve así: void *malloc(size_t size) { void *return_ptr = sbrk(size); if (dictionary == NULL) dictionary = sbrk(1024 […]

Asignadores de memoria multiproceso para C / C ++

Actualmente tengo una aplicación de servidor con varios subprocesos y busco un buen asignador de memoria de múltiples subprocesos. Hasta ahora estoy dividido entre: El umem de Sun Tcmalloc de Google Asignador de bloques de construcción de roscado de Intel El tesoro de Emery Berger Por lo que he descubierto, el tesoro podría ser el […]

Explicar esta implementación de malloc del libro de K & R

Este es un extracto del libro sobre C de Kernighan y Ritchie . Muestra cómo implementar una versión de malloc . Aunque bien comentado, estoy teniendo grandes dificultades para entenderlo. ¿Alguien puede explicarlo? typedef long Align; /* for alignment to long boundary */ union header { /* block header */ struct { union header *ptr; […]

¿Debería liberar memoria antes de salir?

¿Debo liberar toda mi memoria mal ubicada cuando estoy saliendo del progtwig debido al error? something = (char**) malloc (x * sizeof(char*)); for (i = 0; i < x; i++) something[i] = (char*) malloc (y + 1); … if (anything == NULL) { printf("Your input is wrong!"); // should I free memory of every mallocated […]

Heap asigna una matriz 2D (no una matriz de punteros)

Estoy escribiendo código C y me gustaría asignar 512 * 256 bytes. Para mi propia conveniencia, me gustaría poder acceder a los elementos con la matriz de syntax [a] [b]; sin aritmética para encontrar el índice correcto. Cada tutorial que veo en línea me dice que cree una matriz de punteros que apuntan a las […]

Compruebe si un puntero apunta a la memoria asignada en el montón

Quiero saber si un puntero apunta a una pieza de memoria asignada con malloc / new. Me doy cuenta de que la respuesta para una dirección arbitraria es “No, no puedo”, pero creo que es posible anular malloc / free y realizar un seguimiento de los intervalos de memoria asignados. ¿Conoces una biblioteca de gestión […]

memoria asignada dinámicamente después de la finalización del progtwig

Cuando finaliza un progtwig C / C ++ que contiene la memoria asignada dinámicamente (utilizando malloc / nuevo) sin llamadas de envío / eliminación, ¿qué ocurre con esa memoria asignada dinámicamente? ¿El sistema operativo recupera la memoria o esa memoria se vuelve inaccesible para otros progtwigs?