entorno de desarrollo integrado con C + + Compiler
libro sobre programación en C
Ver Más instrucciones
1
Incluir el archivo de biblioteca con las definiciones de la biblioteca estándar . Este es el archivo " stdlib.h " e incluye , entre otras características importantes de C , todas las funciones que llevan a cabo la asignación de memoria dinámica. Para incluir el archivo de biblioteca en el programa , inserte la siguiente línea en la parte superior de la fuente /archivo de cabecera
Ejemplo: .
# Include Página 2
Decida lo que quiere hacer . Luego escoja la función de los siguientes pasos que mejor se adapte a la acción de asignación de memoria que desea realizar .
3
uso malloc () para un bloque de memoria de tamaño conocido . " Malloc " asigna bytes " tamaño" y devuelve un puntero al principio del bloque
prototipo
void * malloc ( size_t size ) ;
Ejemplo: .
Int i;
caracteres * buf ; printf ("Introduzca longitud de la cadena :") ;
scanf ("% d ", & i);
buf = (char *) malloc ( i +1);
if ( NULL == buf) exit ( 1 ) ;
//etc Página 4
calloc Employ () para una serie de elementos que cada elemento tiene un tamaño de más de un byte . " Calloc " asigna un bloque de memoria para los elementos de " números " cada elemento son bytes " tamaño" de longitud. Devuelve un puntero al principio del bloque
Prototipo : void *
calloc (num size_t , tamaño size_t ) ;
Ejemplo: .
Int i , n ;
int * Parr ;
printf ( " Introduzca el número de enteros :") ;
scanf ("% d ", & i);
n = sizeof (int ) ;
Parr = (int *) calloc (i, n);
if ( NULL == Parr ) exit ( 1 ) ;
//etc Página 5
Utilizar realloc () para cambiar el tamaño de un bloque de memoria. " Realloc " amplía o reduce el bloque de memoria de bytes " tamaño" que " ptr " apuntó a
prototipo
oid * realloc (void * ptr , tamaño size_t ) ;
Ejemplo: .
Int num1 , num2 ;
int * arr = NULL;
no
{ printf ("Introduzca un número entero positivo :") ;
scanf ("% d ", & num1 ) ;
while ( 1 > num1 ) ;
arr = (int *) calloc ( num1 , sizeof (int ));
if ( NULL == arr ) exit ( 1 ) ;
hacer
{ printf ( " Introduzca otro número entero positivo : ") ;
scanf ("% d ", & num2 ) ;
while ( 1 > num2 ) ;
arr = (int *) realloc ( arr, num2 * sizeof (int ) ) ;
if ( NULL == arr ) exit ( 1 ) ;
//etc Página 6
lanzamiento de un bloque de memoria asignada en los pasos 3 a 5 con free () . "Free" libera el bloque de memoria que comienza en la memoria que " ptr " señalaron
Prototipo : void
libre (void * ptr ) ;
Ejemplo: .
Int * buf ;
buf = (int *) malloc ( 100 * sizeof (int ));
libre (buf ) ;
//etc