Asignación de memoria en C
El recopilador de C tiene una biblioteca de la asignación de memoria, definida en memoria de malloc.h. es reservado con la función del malloc, y vuelve un indicador a la dirección. Toma un parámetro, el tamaño de la memoria requerido en octetos.
El ejemplo siguiente asigna el espacio para la secuencia, "hello world".
ptr = (char *)malloc(strlen("Hello world") + 1);
El un octeto adicional se requiere para considerar el carácter de la terminación de la secuencia, “\ 0”. (Carbón *) se llama un molde, y fuerza el tipo de vuelta para ser carbón *.
Pues los tipos de datos tienen diversos tamaños, y el malloc vuelve el espacio en octetos, es buena práctica por razones de la portabilidad de utilizar al operador del sizeof al especificar un tamaño para asignar.
El ejemplo siguiente lee una secuencia en el almacenador intermediario de la matriz de caracteres y después asigna la cantidad exacta de memoria requerida y de copias él a una “PTR llamada variable”.
#include <string.h>
#include <malloc.h>
int main()
{
char *ptr, buffer[80];
printf("Enter a string: ");
gets(buffer);
ptr = (char *)malloc((strlen(buffer) + 1) *
sizeof(char));
strcpy(ptr, buffer);
printf("You entered: %s\n", ptr);
return 0;
}
La salida del programa será como sigue:
Enter a string: India is the best
You entered: India is the best |
|