זאת השאלה:
try{ char * pc = new char; ... delete pc; } catch(...) {...}
|
השאלה היא:
האם יש בעיה כלשהי עם הקוד הנ"ל
במידה וכן, מה יש לתקן?
ניתן להשתמש בauto_ptr
התשובה שלי(לא בטוח שזאת התשובה הנכונה), היא
שבמידה וביצענו את השורה הראשונה של הקוד, נוצר לנו למעשה 10 תווים בheap
ואז אם ניזרקת אקספשיין מאיזשהי סיבה, אנחנו ניתקעים עם ה10 תווים האלה בזכרון מבלי לשחרר אותם.
לכן, שימוש בauto_ptr יכול לעזור כיוון שהוא ידאג לשחרר את הזכרון גם אם ניזרק אספשיין ויצאנו באמצע הרצת הקטע קוד.
הבעיה היא, שauto_ptr משתמש בdelete ולא בdelete
לכן צריך לדאוג גם לתקן את זה במחלקה של הauto_ptr
למישהו יש רעיון אחר?

Tears Will Get You Sympathy,
Sweat Will Get You Results!