ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

La función malloc


Enviado por   •  13 de Diciembre de 2018  •  Apuntes  •  517 Palabras (3 Páginas)  •  136 Visitas

Página 1 de 3

ÍNDICE

1 INTRODUCCIÓN 3

2 OBJETIVO DE LA FUNCIÓN 3

3 SINTAXIS 3

3.1 PARÁMETROS DE ENTRADA 3

3.2 PARÁMETRO DE SALIDA 4

4 EJEMPLO 4

5 REFERENCIAS 5

1 Introducción

Cuando trabajamos con punteros y estructuras dinámicas de datos es inevitable habar de la asignación dinámica de memoria por lo que es necesario conocer una función que nos ayudará bastante en este tema, dicha función en malloc.

2 Objetivo de la función

Se utiliza para solicitar u bloque de memoria del tamaño suministrado como parámetro, devuelve un puntero a la zona de memoria concedida. Se garantiza que la zona de memoria concedida no está ocupada por ninguna otra variable ni otra zona devuelta por malloc, si es incapaz de conceder el bloque (p.ej. no hay memoria suficiente), devuelve un puntero nulo.

La función malloc devuelve un puntero inespecífico, que no apunta a un tipo de datos determinado. En C, estos punteros sin tipo se declaran como void* los punteros void* pueden convertirse a cualquier otra clase de puntero.

3 Sintaxis

La sintaxis de la función malloc es:

void* malloc (numero_de_bytes)

Donde void* que es un puntero inespecífico puede ser cambiado a cualquier tipo de datos que se necesite, numero_de_bytes es la cantidad de memoria en bytes que serán reservados. Tomando como base lo anterior tenemos lo siguiente:

int *ptr = (int *)malloc(1000)

Donde int *ptr es la declaración de un puntero del tipo entero que apuntara a una zona de memoria asignada por malloc del tamaño de 1000 bytes del tipo entero (int *)malloc(1000).

3.1 Parámetros de entrada

Como parametro de entrada como lo vimos en las lineas de arriba tenemos el tamaño de la memoria que se va a solicitar en bytes, en ocasiones esto es un problema, por lo que para resolver este tema usamos el operador sizeof, por ejemplo, digamos que tenemos una variable calif del tipo entero (int) donde almacenaremos calificaciones, y queremos reservar un espacio en memoria para almacenar otra calificación lo haríamos de la siguente manera:

Int *ptr = (int *)malloc(sizeof(calif))

En

...

Descargar como (para miembros actualizados)  txt (3.7 Kb)   pdf (47.3 Kb)   docx (12.7 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com