מהי פונקציית calloc() ב-C++?

Mhy Pwnqzyyt Calloc B C



הבנת הסוגים השונים של פונקציות הקצאת זיכרון היא קריטית בזמן עבודה ב-C++. ה calloc() היא פונקציה כזו שנמצאת בשימוש תדיר ב-C++ להקצאה דינמית של זיכרון. בעוד שהשימוש בו עשוי להיראות פשוט, ישנם היבטים משמעותיים שיש לזכור בעת השימוש calloc() .

במאמר זה, נסתכל על calloc() פונקציה וכיצד ניתן לנצל אותה בהצלחה ב-C++.

מהי פונקציית calloc()?

ה הפונקציה calloc() היא פונקציית הקצאת זיכרון בתכנות C++. הוא משמש להקצאת בלוק זיכרון עבור מערך או קבוצה של משתנים. ה calloc() הפונקציה היא כמו ה malloc() פונקציה, אלא שהיא גם מגדירה את הזיכרון המוקצה לאפסים בתחילה. זה מבטיח שהזיכרון המוקצה מאותחל לערך ידוע, דבר שימושי כאשר עובדים עם מערכים ומבנים.







התחביר עבור ה הפונקציה calloc() הוא כדלקמן:



בָּטֵל * calloc ( size_t nmemb , size_t גודל )

הפונקציה לוקחת שני ארגומנטים: nmemb ו גודל . ה nmemb ארגומנט מציין את מספר האלמנטים במערך המוקצה, בעוד שה- גודל ארגומנט מציין את הגודל של כל אלמנט בבתים.



כמו כן, אם הקצאת הזיכרון תצליח, ה calloc() הפונקציה מחזירה מצביע null, אחרת היא מחזירה מצביע לתחילת בלוק הזיכרון החדש שנוצר. כדי למנוע דליפות זיכרון, הזיכרון שהוקצה על ידי calloc() יש להסיר באמצעות חינם() שיטה ברגע שזה כבר לא נדרש.





כיצד להשתמש בפונקציית calloc() ב-C++?

להשתמש calloc() פונקציה ב-C++, בצע את השלבים הבאים:

שלב 1: כלול את קובץ הכותרת הדרוש עבור calloc() פונקציה, כלומר .



שלב 2: לאחר מכן הכריז על משתנה מצביע מסוג הנתונים הרצוי.

שלב 3: לאחר מכן השתמש ב calloc() פונקציה להקצאת זיכרון ולאתחל אותו ל-0.

שלב 4: השתמש בזיכרון שהוקצה כנדרש.

שלב 5: לאחר שתסיים להשתמש בזיכרון שהוקצה, שחרר אותו באמצעות חינם() פוּנקצִיָה.

הדוגמה הבאה מציגה את calloc() יישום פונקציה ב-C++.

#include

#include

באמצעות מרחב שמות std ;

int רָאשִׁי ( ) {

int * ptr ;

ptr = ( int * ) calloc ( 6 , מידה של ( int ) ) ;

אם ( ! ptr ) {

cout << 'הקצאת זיכרון נכשלה' ;

יְצִיאָה ( 1 ) ;

}

cout << 'אתחול ערכים...' << endl

<< endl ;

ל ( int אני = 0 ; אני < 6 ; אני ++ ) {

ptr [ אני ] = אני * 3 ;

}

cout << 'ערכים אתחולים'. << endl ;

ל ( int אני = 0 ; אני < 6 ; אני ++ ) {

cout << * ( ptr + אני ) << endl ;

}

חינם ( ptr ) ;

לַחֲזוֹר 0 ;

}

בקוד לעיל, מצביע של מספר שלם ptr מוצהר ראשון. לאחר מכן הזיכרון מוקצה עבור 6 מספרים שלמים באמצעות calloc(), עם אתחול הזיכרון עם 0. ה sizeof(int) הפונקציה משמשת לחישוב כמה זיכרון נדרש לאחסון מספרים שלמים. לאחר מכן, הקצאת הזיכרון נבדקת לאיתור שגיאות כדי להבטיח הצלחה. אם לא, התוכנית מסתיימת ומוצגת הודעת שגיאה.

לאחר מכן אתחול הזיכרון המוקצה באמצעות מספרים המתקבלים על ידי הכפלה 'i*3' באמצעות א ל לוּלָאָה. הערכים השמורים בזיכרון שהוקצה מודפסים באמצעות שנייה עבור לולאה ומצביע אריתמטיקה עם *(ptr + i) . בסופו של דבר, הזיכרון שהוקצה באופן דינמי משתחרר על ידי קריאה ל- חינם() פונקציה, שעוצרת דליפות זיכרון. כסימן לכך שהתוכנית רצה בהצלחה, היא מחזירה 0.

תְפוּקָה

סיכום

ב-C++, ה calloc() הפונקציה שימושית להקצאה דינמית של זיכרון. זה לא רק מקצה זיכרון אלא גם מאפס אותו, וזה שימושי כאשר עובדים עם מערכים ומבנים. הבנה כיצד לנצל calloc() ביעילות הוא חיוני למניעת דליפות זיכרון ולהבטחת הצלחת ביצוע התוכנית. מפתחים יכולים להשתמש בצורה מאובטחת ב- calloc() השיטה בתוכניות C++ שלהם על ידי ביצוע ההוראות הניתנות במאמר זה.