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

La función malloc

yisuscraistmxApuntes13 de Diciembre de 2018

517 Palabras (3 Páginas)192 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 este caso lo que hace malloc es reservarnos un espacio en memoria del mismo tamaño que la variable calif, el puntero resultante de la asignación será implementaado por el puntero ptr.

3.2 Parámetro de salida

La función malloc devuelve un puntero al bloque de memoria asignado, es decir, devuelve la direccióndel bloque de memoria que se asigno a la función.

4 Ejemplo

El siguiente programa ejemplifica de manera sencilla el uso de malloc, solicitando dos numeros enteros, de los cuales, uno lo almacenara en una vaiable estatica y otro en un espacio de memoria solicitado por malloc.

#include <stdio.h>

#include <stdlib.h>

int main() {

int num; //declara una variable para almacenar enteros

int *ptr; //declara un puntero a enteros

//solicita el ingreso de un numero entero por teclado y lo almancena en num

printf("Escribe cualquier numero entero: ");

scanf("%i",&num);

//solicita un espacio en memoria con el tamaño de la variable num, guarda la diraccion del bloque asigndo en el puntero ptr

ptr = (int*)malloc(sizeof(num));

//solicita el ingreso de otro numero entero por teclado y lo almancena en el nuevo bloque de memoria

printf("\nEscribe otro numero entero: ");

scanf("%i",ptr);

...

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