Reserviert Speicher und gibt die Speicheradresse darauf zurück
Beschreibung
void* malloc(size_t bytes);Reserviert Speicher der Größe bytes und gibt einen Zeiger auf diesen zurück. Im Gegensatz zu calloc setzt malloc den Speicher beim Reservieren nicht auf null.
Rückgabewerte
Gibt bei Erfolg einen Void-Zeiger auf den reservierten Speicher zurück, sonst den Nullzeiger (void*) NULL.
Beispiele
int *array = (int *) malloc(sizeof(int)*100);
array[0] = 5;#include <stdlib.h>
int *zeiger;
malloc(sizeof(int));
// Ganz normal damit arbeiten
*zeiger = 5;Anwendungsbeispiel
int main()
{
struct person *pdaten;
int pNr,f;
scanf(“%d",&pNr);
pdaten = (struct person *)malloc(sizeof(struct person) * pNr);
for(f=0;f<pNr;f++)
scanf(“%s", pdaten[f].Vorname);
return 0;
}Wissenswert
- Da ein void-Zeiger zurückgegeben wird, muss eine Umwandlung in richtigen Zeigertyp erfolgen:
(int*)malloc(sizeof(int)) - Am Schluss sollte der Speicher wieder mit free freigeben werden.
- Es sollte überprüft werden, ob malloc nicht einen Nullpointer geliefert hat, also keinen Speicher mehr reservieren konnte
Siehe auch