Bienvenido a Tecnohackers

Tecnohackers » Programacion » Area de Programacion » Programacion a Bajo Nivel. APIs, Hooking, ASM, C/C++, etc.
 » 

Asignar Memoria



Autor Tema: Asignar Memoria  (Leído 858 veces)

Desconectado P4|3L0

  • Asiduo
  • *
  • Mensajes: 83
  • TecnoHacker un nuevo proyecto.
    • http://www.tecnohacker.com
Asignar Memoria
« en: Diciembre 29, 2009, 11:09:31 am »
Código: You are not allowed to view links. Register or Login
#include <stdio.h>
#include <stdlib.h>

int main()
    {
    int bytes;
    char *mem;

    printf("Bytes a reservar: ");
    scanf("%i",&bytes);
    mem = (char *) malloc(bytes);
    if (mem == NULL){
       printf( "Memoria no disponible\n" ); system("PAUSE>NUL");}
     
    else {
       printf("Memoria reservada: %i bytes\n", bytes);
       system("pause>nul");
       printf("Direccion: %p\n", mem);
       system("pause>nul");
       free(mem);
       }
       }

Primero usa malloc y determina los bytes a usar, luego hace una comprobación si no da NULL es que hay memoria disponible y sigue con el proceso, te indica los bytes que has reservado y te dice la dirección(puntero) donde están.

Por último libera la memoria con free.

Malloc y free estan en la libreria stdlib.h.

Existen varias funciones para la asignación dinámica de la memoria, pero las dos funciones básicas son malloc y free.

La función malloc (Memory allocate - asignar memoria) reservar una parte de la memoria y devuelve la dirección del comienzo de esa parte. Esta dirección podemos almacenarla en un puntero y así podemos acceder a la memoria reservada. La función malloc tiene el siguiente formato:

Código:

puntero = (tipo_de_variable *) malloc( número de bytes a reservar );

-puntero: es una variable tipo puntero que almacena la dirección del bloque de memoria reservado. Puede ser un puntero a char, int, float,...
-(tipo_de_variable *): es lo que se llama un molde. La función malloc nos reserva una cierta cantidad de bytes y devuelve un puntero del tipo void (que es uno genérico). Con el molde le indicamos al compilador que lo convierta en un puntero del mismo tipo que la variable puntero.



Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal