Diese Funktion liefert einen Zeiger auf einen Speicherbereich der Länge size oder NULL, wenn der geforderte Bereich nicht bereitgestellt werden kann. Nicht mehr benötigter Speicherplatz kann mit der Funktion free freigegeben werden.
VERBATIM/b335a: include <malloc.h> char *malloc(size) unsigned size; /* in Bytes */
Dabei muss ptr einen vorher mit malloc angeforderten Bereich adressieren.
VERBATIM/b335b: #include <malloc.h> char *free(ptr) char *ptr;
Nachfolgendes Programm liest zeilenweise von der Standardeingabe, speichert jede Zeile und gibt diese in umgekehrter Reihenfolge (reverse) wieder aus; beginnend mit der letzten Zeile.
BEISPIELE/b335.c: #include <stdio.h> #include <string.h> #include <malloc.h> main() /* Ausgabe der Zeilen in umgekehrter Reihenfolge */ { char *pvek[10000]; char line[512]; FILE *fpr; int i; i=0; while((fgets(line,512,stdin)) != NULL) { pvek[i]=malloc((unsigned) strlen(line)); if(pvek[i] == NULL) { perror("malloc - no memory:"); exit(1); } strcpy(pvek[i],line); i++; } while(--i >= 0) { printf("%s",pvek[i]); free(pvek[i]); } }