דף הבית שיעורים תוספות לא מונחות עצמים
זיכרון דינמי - המשך
 
זיכרון דינמי - המשך
 
נניח שאתה משתמש באופרטור new, אך לא נותר מקום להקצות. במקרה זה האופרטור new יעשה בדיוק מה ש-malloc היה עושה, כלומר, יחזיר מצביע ל-NULL.
כיצד מטפלים במצב זה בתוכנית?
בדיוק כמו שהיינו עושים זאת במצב של קריאה לפונקציה malloc.
עלינו לבדוק לאחר כל קריאה לאופרטור, האם הוחזר NULL. במידה וכן, ניתן לטפל בבעיה ע"י הפסקת התוכנית, הודעה למשתמש או כל דרך אחרת המתאימה לנסיבות, כמו כאן:

int main()
{
 char *block;
 block = new char[9999999999];
 if (block==NULL)
 {
  //do something appropriate
 }
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט