Menu
Coddy logo textTech

זיכרון מחסנית לעומת ערימה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 31 מתוך 63.

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

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

void function() {
    int x = 10;  // מוקצה במחסנית
    char arr[100];  // מוקצה גם במחסנית
    // הזיכרון משתחרר אוטומטית כשהפונקציה מסתיימת
}

הערימה משמשת להקצאת זיכרון דינמית. זהו מאגר זיכרון גדול יותר שאפשר לבקש במהלך הרצת התוכנית.

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

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

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C אונליין