1.10 - תקינות והתנהגות לא מוגדרת - תרגול
תרגול - ראיה לפני תיקון¶
כתבו פונקציה שמוסיפה שני intים ומחזירה optional
בדקו אפס, מספרים בעלי אותו סימן, מספרים בעלי סימנים שונים ושני קצוות תחום הערכים. כתבו איזו תוצאה מתקבלת לכל מקרה ומדוע הביטויים בבדיקה עצמם חוקיים.
חקירת חיים¶
הריצו את דוגמת המעבדה הפגומה עם AddressSanitizer אם הכלי מותקן. ציינו את שלושת האתרים: הקצאה, שחרור וגישה. תקנו את הבעלות והוסיפו בדיקה שהייתה חושפת את הבאג המקורי.
אם הכלי אינו זמין, הגישו ניתוח סטטי של חיי האובייקט וסמנו שהאבחון הדינמי לא הורץ. אין להציג פלט משוער כאילו התקבל במחשב.
הבחנה בין מצבים¶
כתבו למה overflow של signed, סדר לא קבוע שהתקן מתיר וקריאה ל־API שמחזירה קוד שגיאה הם שלושה מצבים שונים. הציעו תגובה מתאימה לכל אחד מהם, בלי להפוך כל כשל חיצוני להתנהגות לא מוגדרת.