Ripartizione di memoria in C
Il compilatore di C ha una biblioteca di ripartizione di memoria, definita nella memoria di malloc.h. è riservato usando la funzione del malloc e restituisce un indicatore all'indirizzo. Prende un parametro, il formato della memoria richiesto nei byte.
Il seguente esempio assegna lo spazio per la stringa,"hello world".
ptr = (char *)malloc(strlen("Hello world") + 1);
L'un byte supplementare è richiesto per considerare il carattere di termine della stringa, “\ 0„. (Carbone *) è denominato un getto e forza il tipo di ritorno per essere carbone *.
Poichè i tipi di dati hanno formati differenti e il malloc restituisce lo spazio nei byte, è buona pratica affinchè i motivi di portabilità usi l'operatore del sizeof quando specifica un formato per assegnare.
Il seguente esempio legge una stringa nell'amplificatore di allineamento di carattere ed allora assegna la quantità esatta di memoria richiesta e di copie esso "ad uno stampante" chiamato variabile.
#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;
}
L'uscita del programma sarà come segue:
Enter a string: India is the best
You entered: India is the best |
|