שאלות תרגיל בית 0

חלק ב - הקצאת MALLOC נכשלה

חלק ב - הקצאת MALLOC נכשלה

על ידי מאיה שטיין בתאריך
מספר תגובות: 3

כחלק מהפתרון של התרגיל אני משתמשת בMALLOC. אם ההקצאה נכשלה (NULL) - לסיים את התוכנית (return 0)? לנסות להקצות שוב עד שההקצאה מצליחה?... מה מצפים שיקרה בתוכנית במצב כזה?

שאלה נוספת- בשורה הראשונה כתוב "מקבלת מהמשתמש כקלט מספר שלם" - אפשר להניח שבוודאות מתקבל מספר שלם או שצריך לבדוק את זה?

בתגובה ל: מאיה שטיין

תשובה ל: חלק ב - הקצאת MALLOC נכשלה

על ידי יורי פלדמן בתאריך

אם הקצאה נכשלת בד"כ אין טעם לנסות שוב (כי זה אומר שהמערכת כולה תחת עומס), ויש לדווח על שגיאה ולסיים את התוכנית בצורה מסודרת ע"י return מה-main

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

בתגובה ל: יורי פלדמן

תשובה ל: חלק ב - הקצאת MALLOC נכשלה

על ידי מאיה שטיין בתאריך
1. הקצאה נכשלת במקרה של התרגיל הזה - לעשות רק return 0 או להציג איזושהי הודעה?
2. אם מכניסים שבר למשל, זה יראה את השגיאה רק אחרי שיכתוב גם "Enter numbers".. זה תקין (למשל עבור 3.5 יקלוט בהתחלה 3)? או שהכוונה היא רק לבדוק אם זה מספר ולא תו (רק אם זה תו להציג שגיאה)
בתגובה ל: מאיה שטיין

תשובה ל: חלק ב - הקצאת MALLOC נכשלה

על ידי יורי פלדמן בתאריך

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

2. אל תסתבכי. כתוב שהתוכנית מצפה לקלוט int - דהיינו הכי טוב שהיא יכולה לעשות זה לנסות ולודא שהצליחה.