Tecnología

Inicio

Función malloc

Función malloc


En C - un lenguaje de programación diseñado por Dennis Ritchie en AT & T Bell Laboratories en la década de 1970 - la función malloc es un medio para asignar dinámicamente la memoria, o en respuesta a la demanda, y no en términos absolutos. A veces los programadores no saben la cantidad de memoria que se necesitará para los datos en el momento en que se introduce un programa, por lo que les permite malloc para asignar memoria dinámicamente después de que el programa ha comenzado a correr.

Asignación de memoria

Por defecto, la función malloc asigna un contiguos o adyacentes, bloque de memoria en una zona conocida como un montón, al que se accede por un programa para almacenar datos y variables. La función malloc toma un solo argumento, un largo de 32 bits o entero que representa el número de bytes a asignar del montón. La función malloc pide al sistema para un bloque de memoria del tamaño especificado y devuelve un puntero - una dirección, desde el punto de vista del lenguaje de programación - al primer elemento del bloque.

Valor de retorno

Los ordenadores sólo tienen una cantidad limitada de memoria, por lo que es posible que la función malloc para solicitar más memoria que la disponible físicamente y hacer que un programa se bloquee. Si no hay suficiente memoria disponible, malloc devuelve un puntero nulo o un puntero con un valor de cero. Para evitar que un programa de estrellarse, los programadores deben probar explícitamente que malloc no ha vuelto nulo, para que sepan que la memoria solicitada se asignó con éxito antes de intentar usarlo.

Liberar memoria

Del mismo modo, un equipo no puede asignar permanentemente más y más memoria - y sobrescribir repetidamente un puntero que apunta a la memoria dinámicamente asignada puede conducir a los datos sean inaccesibles. Por lo tanto, la memoria asignada dinámicamente debe ser liberado de nuevo a la piscina memoria del sistema, utilizando la función de conexión, una vez que ya no es necesaria. Una vez que termina un proceso, toda la memoria asignada dinámicamente es liberada de nuevo a la agrupación de memoria.

Sintaxis

Malloc devuelve un puntero genérico, o un puntero a void, pero el puntero puede ser escrito o encasillado, para indicar el tipo de datos a la que apunta. El "char str = (char) malloc (40)," la sintaxis, por ejemplo, asigna memoria para una cadena de 40 caracteres de longitud. Como alternativa, los programadores pueden declarar un puntero e invocar malloc cuando desean hacer espacio para los elementos de una matriz. Sin embargo, es importante tener en cuenta que la función malloc solamente asigna memoria. Que no se vacía o no inicializar la memoria se asigna.