Malloc

malloc


Για να τη χρησιμοποιήσουμε πρέπει στην αρχή να συμπεριλάβουμε τη βιβλιοθήκη stdlib:
#include <stdlib.h>

Η malloc δεσμεύει έναν αριθμό από bytes στο σωρό και επιστρέφει έναν δείκτη στην αρχή της μνήμης που δεσμεύτηκε. Συνήθως δεν ξέρουμε πόσα bytes θέλουμε να δεσμεύσουμε, αλλά ξέρουμε τι στοιχεία θέλουμε να αποθηκεύσουμε. Για το λόγο αυτό χρησιμοποιούμε τη sizeof που μας δίνει το χώρο σε bytes που καταλαμβάνει ένας τύπος δεδομένων. Π.χ. αν θέλουμε να δεσμεύσουμε δυναμικά 100 int:

int * newData;
newData = malloc(100 * sizeof(int));

Στο σημείο αυτό ο δείκτης μπορεί να χρησιμοποιηθεί σαν να ήταν πίνακας τόσων θέσεων όση η μνήμη που δεσμεύτηκε με τη malloc.

Το παρακάτω πρόγραμμα ζητάει από το χρήστη τον αριθμό των φοιτητών και δεσμεύει το κατάλληλο μέγεθος μνήμης στο σωρό ώστε να αποθηκεύσει τις βαθμολογίες τους.