Λειτουργία calloc() στη βιβλιοθήκη C με πρόγραμμα EXAMPLE
Τι είναι το calloc στο C;
The calloc() στο C είναι μια συνάρτηση που χρησιμοποιείται για την εκχώρηση πολλαπλών μπλοκ μνήμης που έχουν το ίδιο μέγεθος. Είναι μια συνάρτηση δυναμικής εκχώρησης μνήμης που εκχωρεί το χώρο της μνήμης σε πολύπλοκες δομές δεδομένων όπως πίνακες και δομές και επιστρέφει έναν κενό δείκτη στη μνήμη. Το Calloc σημαίνει συνεχόμενη κατανομή.
Λειτουργία Malloc χρησιμοποιείται για την εκχώρηση ενός μόνο μπλοκ χώρου μνήμης ενώ η συνάρτηση calloc στο C χρησιμοποιείται για την εκχώρηση πολλαπλών μπλοκ χώρου μνήμης. Κάθε μπλοκ που εκχωρείται από το calloc στον προγραμματισμό C έχει το ίδιο μέγεθος.
Σύνταξη calloc():
ptr = (cast_type *) calloc (n, size);
- Το παραπάνω παράδειγμα δήλωσης του calloc στο C χρησιμοποιείται για την εκχώρηση n μπλοκ μνήμης του ίδιου μεγέθους.
- Αφού εκχωρηθεί ο χώρος μνήμης, τότε όλα τα byte αρχικοποιούνται στο μηδέν.
- The δείκτης που βρίσκεται αυτή τη στιγμή στο πρώτο byte του εκχωρημένου χώρου μνήμης επιστρέφεται.
Κάθε φορά που υπάρχει ένα σφάλμα κατά την κατανομή χώρου στη μνήμη, όπως η έλλειψη μνήμης, τότε επιστρέφεται ένας μηδενικός δείκτης όπως φαίνεται στο παρακάτω παράδειγμα calloc.
Πώς να χρησιμοποιήσετε το calloc
Το παρακάτω πρόγραμμα calloc στο C υπολογίζει το άθροισμα μιας αριθμητικής ακολουθίας.
#include <stdio.h> int main() { int i, * ptr, sum = 0; ptr = calloc(10, sizeof(int)); if (ptr == NULL) { printf("Error! memory not allocated."); exit(0); } printf("Building and calculating the sequence sum of the first 10 terms \ n "); for (i = 0; i < 10; ++i) { * (ptr + i) = i; sum += * (ptr + i); } printf("Sum = %d", sum); free(ptr); return 0; }
Αποτέλεσμα του calloc στο παράδειγμα C:
Building and calculating the sequence sum of the first 10 terms Sum = 45