Η συνάρτηση calloc () στο C ++ εκχωρεί ένα μπλοκ μνήμης για μια σειρά αντικειμένων και αρχικοποιεί όλα τα bit του στο μηδέν.
Η συνάρτηση calloc () επιστρέφει ένα δείκτη στο πρώτο byte του εκχωρημένου μπλοκ μνήμης εάν η κατανομή πετύχει.
Εάν το μέγεθος είναι μηδέν, η τιμή που επιστρέφεται εξαρτάται από την εφαρμογή της βιβλιοθήκης. Μπορεί ή όχι να είναι μηδενικός δείκτης.
πρωτότυπο calloc ()
void * calloc (size_t num, size_t size);
Η συνάρτηση ορίζεται στο αρχείο κεφαλίδας.
παράμετροι calloc ()
- αριθμός: Μια μη υπογεγραμμένη ακέραια τιμή που αντιπροσωπεύει τον αριθμό των στοιχείων.
- size: Μη υπογεγραμμένη ακέραια τιμή που αντιπροσωπεύει το μπλοκ μνήμης σε byte.
calloc () Επιστροφή τιμή
Η συνάρτηση calloc () επιστρέφει:
- ένα δείκτη στην αρχή του μπλοκ μνήμης που έχει εκχωρηθεί από τη συνάρτηση.
- null δείκτης εάν αποτύχει η κατανομή.
Παράδειγμα 1: Πώς λειτουργεί η λειτουργία calloc ();
#include #include using namespace std; int main() ( int *ptr; ptr = (int *)calloc(5, sizeof(int)); if (!ptr) ( cout << "Memory Allocation Failed"; exit(1); ) cout << "Initializing values… " << endl << endl; for (int i = 0; i < 5; i++) ( ptr(i) = i * 2 + 1; ) cout << "Initialized values" << endl; for (int i = 0; i < 5; i++) ( /* ptr(i) and *(ptr+i) can be used interchangeably */ cout << *(ptr + i) << endl; ) free(ptr); return 0; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Αρχικοποίηση τιμών… Αρχικοποιημένες τιμές 1 3 5 7 9
Παράδειγμα 2: συνάρτηση calloc () με μέγεθος μηδέν
#include #include using namespace std; int main() ( int *ptr = (int *)calloc(0, 0); if (ptr == NULL) ( cout << "Null pointer"; ) else ( cout << "Address = " << ptr << endl; ) free(ptr); return 0; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Διεύθυνση = 0x371530