נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: new / malloc -C++

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אורח
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 20 October 2007 בשעה 10:33 | IP רשוּם
ציטוט אורח

תמיד אמרו לי ש new ב C++ מוגבל ולכן מתכנתים ב C++ אוהבים להשתמש בmalloc

עכשיו רציתי להבין מה הכוונה שהוא מוגבל? איך הוא מגובל ומה הוא לא יכול לעשות ש malloc כן יכול ?

חזרה לתחילת העמוד הצג את כרטיס החבר של אורח חפש הודעות אחרות של אורח בקר בדף הבית של אורח
 
aaa
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 20 October 2007 בשעה 10:43 | IP רשוּם
ציטוט aaa

ב-malloc אתה בוחר בדיוק כמה מקום בזכרון אתה רוצה להקצות, ב-new זה נקבע אוטומטית לפי הסוג שאתה מקצה עבורו
חזרה לתחילת העמוד הצג את כרטיס החבר של aaa חפש הודעות אחרות של aaa בקר בדף הבית של aaa
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 20 October 2007 בשעה 17:56 | IP רשוּם
ציטוט צחי@

aaa כתב:
ב-malloc אתה בוחר בדיוק כמה מקום בזכרון אתה רוצה להקצות, ב-new זה נקבע אוטומטית לפי הסוג שאתה מקצה עבורו

למה בדיוק אי אפשר לעשות את זה עם new ? כלומר לבחור בדיוק כמה זכרון רוצים להקצות ?
פשוט מקצים טיפוס מסוג מסויים, למשל char שגודלו בייט אחד, כמספר הבייטים שרוצים להקצות. לא נהוג ולא מומלץ להשתמש ב-malloc ב-C++
malloc אינו זורק exception אם הקצאת הזכרון נכשלת
 ולכן הוא פחות בטוח לשימוש מ-new
 מה שכן אפשר לעשות זה פונקציית הקצאת זכרון משלך - שמתשמשת ב-new לפי צרכיך, או לעשות override ל-operator new - צריך להזהר כשעושים את זה - שווה לקרוא קצת בנושא.

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
אלצ'קו
אחראי פורומים
אחראי פורומים
סמל אישי
ג2ר פ33תי

הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת
הודעות: 609
נשלח בתאריך: 20 October 2007 בשעה 18:25 | IP רשוּם
ציטוט אלצ'קו

אורח כתב:

תמיד אמרו לי ש new ב C++ מוגבל ולכן מתכנתים ב C++ אוהבים להשתמש בmalloc

עכשיו רציתי להבין מה הכוונה שהוא מוגבל? איך הוא מגובל ומה הוא לא יכול לעשות ש malloc כן יכול ?



הבעיה היא ש-malloc ו-free לא מכירים את סמנטיקת האובייקטים של CPP. כלומר, הם לא קוראים לבנאים ולמפרקים של מחלקות.
חזרה לתחילת העמוד הצג את כרטיס החבר של אלצ'קו חפש הודעות אחרות של אלצ'קו
 
Fate
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 25 October 2005
משתמש: מנותק/ת
הודעות: 571
נשלח בתאריך: 20 October 2007 בשעה 18:55 | IP רשוּם
ציטוט Fate

new כן קורא לבנאים של מחלקות בC++, לא?
וד"א זה שnew זורק exception לא תמיד טוב...
אני מעדיף שיחזיר לי NULL ואני אעשה את הבדיקה בעצמי...
חזרה לתחילת העמוד הצג את כרטיס החבר של Fate חפש הודעות אחרות של Fate
 
אלצ'קו
אחראי פורומים
אחראי פורומים
סמל אישי
ג2ר פ33תי

הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת
הודעות: 609
נשלח בתאריך: 20 October 2007 בשעה 18:58 | IP רשוּם
ציטוט אלצ'קו

Fate כתב:
new כן קורא לבנאים של מחלקות בC++, לא?
וד"א זה שnew זורק exception לא תמיד טוב...
אני מעדיף שיחזיר לי NULL ואני אעשה את הבדיקה בעצמי...


התכוונתי ל-malloc ו-free מול new ו-delete.
חזרה לתחילת העמוד הצג את כרטיס החבר של אלצ'קו חפש הודעות אחרות של אלצ'קו
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה