Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Studies

משתנים בלתי מאותחלים

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

#include <stdio.h>
int main() {
    int x;
    printf("x = %d\n", x);
}

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

שימוש במשתנים בלתי מאותחלים הוא מקור קלאסי לבאגים קשים לתפעול בתוכניות שנכתוב. לכן, חשוב מאוד להמנע מהם - נהוג לתת ערך “ברירת מחדל” למשתנים, כמו 0 או 1- למשתני int.