Malloc מול Calloc

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 4 אַפּרִיל 2021
תאריך עדכון: 11 מאי 2024
Anonim
Информатика. Язык Си: Системные вызовы malloc() и free() в Си. Центр онлайн-обучения «Фоксфорд»
וִידֵאוֹ: Информатика. Язык Си: Системные вызовы malloc() и free() в Си. Центр онлайн-обучения «Фоксфорд»

תוֹכֶן

ההבדל העיקרי בין malloc ו- calloc הוא שה malloc מקצה לחסימה יחידה בלבד של זיכרון מבוקש ואילו calloc מקצה מספר בלוקים של זיכרון מבוקש.


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

Malloc היא פונקציה המשמשת להקצאת גוש זיכרון בבתים. גודל החסימה מחליט על ידי המשתמש ולהגדיר את גודל חסימת הזיכרון חשוב מאוד לפני כתיבת הקוד. הקצאת הזיכרון ניתנת על ידי זיכרון RAM. אז כאשר התוכנית, היא מבקשת זיכרון RAM להקצאת זיכרון. כשאתה מבקש בקשה, והבקשה הזו מתקבלת מאשר פונקציה של malloc נאמרת כמוצלחת וזיכרון מוקצה. אם פונקציית malloc אינה מסוגלת להקצות את הזיכרון, NULL חזר. פעולת הפונקציה malloc דומה מאוד לפונקציה calloc, מכיוון ששתי הפונקציות הללו מקצות הקצאת זיכרון. Calloc נוקט בשני טיעונים לבקשת הזיכרון. ב- calloc עלינו להקצות את גודל סוג הנתונים. שני הערמומיות בקלוק מופרדים על ידי פסיקים.


תוכן: הבדל בין Malloc לקאלוק

  • טבלת השוואה
  • מאלוק
  • קאלוק
  • הבדלים עיקריים
  • סיכום
  • סרטון הסבר

טבלת השוואה

בסיסמאלוקקאלוק
משמעותmalloc להקצות בלוק אחד בלבד של זיכרון מבוקש

להקצאת מספר בלוקים של זיכרון מבוקש.

 

תחביר

תחביר של maloc הוא

void * malloc (גודל_ט גודל);

תחביר של calloc הוא

void * calloc (size_t num, size_t size);

מהירותMalloc מהיר יותר מאשר callocCalloc איטי יותר מאשר malloc
אתחול ה- malloc () לא מנקה ומאתחל את הזיכרון שהוקצה.הזיכרון המוקצה מאתחל לאפס באמצעות calloc ().

מאלוק

Malloc היא פונקציה המשמשת להקצאת גוש זיכרון בבתים. גודל החסימה מחליט על ידי המשתמש ולהגדיר את גודל חסימת הזיכרון חשוב מאוד לפני כתיבת הקוד. הקצאת הזיכרון ניתנת על ידי זיכרון RAM. אז כאשר התוכנית, היא מבקשת זיכרון RAM להקצאת זיכרון. כשאתה מבקש בקשה, והבקשה הזו מתקבלת מאשר פונקציה של malloc נאמרת כמוצלחת וזיכרון מוקצה. אם פונקציית malloc אינה מסוגלת להקצות את הזיכרון, NULL יוחזר.


קאלוק

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

הבדלים עיקריים

  1. Malloc מקצה לחסימה אחת בלבד של זיכרון מבוקש ואילו calloc מקצה מספר בלוקים של זיכרון מבוקש.
  2. תחביר של malloc הוא: void * malloc (גודל_ט גודל); ואילו התחביר של calloc הוא בטל * calloc (size_t num, size_t size);
  3. Malloc מהיר יותר מאשר calloc ואילו Calloc איטי יותר מאשר malloc.
  4. ה- malloc () לא מנקה ומאתחל את הזיכרון שהוקצה ואילו הזיכרון שהוקצה מאתחל לאפס באמצעות calloc ().

סיכום

במאמר זה לעיל אנו רואים את ההבדל הברור בין malloc ו- calloc ועם היישום.

סרטון הסבר