מצביע – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
JAnDbot (שיחה | תרומות)
Yonidebot (שיחה | תרומות)
מ בוט החלפות: בעיה;
שורה 9:
# הקצאה דינמית של זיכרון בזמן ריצה ועוד.
 
שימוש לא נכון במצביעים עלול לגרום ל[[חריגה|חריגות]] במהלך ריצת [[תוכנית מחשב|תוכנית המחשב]]. נסיון גישה לכתובת לא חוקית יגרום לחריגת גישה. שורש הבעייההבעיה נעוץ בקלות בה ניתן לבצע מניפולציות על המצביעים, שהם ערכים [[מספר|מספריים]] לכל דבר.
 
==מצביעי טיפוס==
שורה 23:
השימוש מצביעים הוא בעל פוטנציאל גבוה לבעיות בעיקר בגלל האפשרות ל[[חריגה|חריגת]] גישה. לעומת זאת, קשה לוותר על היתרונות שהשימוש בהם נותן. בשל כך הביאו [[שפות תכנות]] מתקדמות ב[[מדעי המחשב]] (כמו [[ג'אווה]] ו־[[C#]]) לשימוש בטיפוסים קצת יותר מוגבלים המאפשרים הצבעה על אובייקטים, אולם לא מאפשרים ביצוע מניפולציה מספרית על המצביע. כך למעשה מתבצעת הפרדה בין היכולת להצביע על אובייקטים, ובין היכולת לגשת לכתובות אקראיות בזיכרון.
 
בעייהבעיה נוספת הקשורה במצביעים ובהקצאת זיכרון דינאמית, היא [[דליפת זיכרון]], הנובע מכך שבהליך מסוים זכרון שהוקצה לצורך פעולה, לא שוחרר בתום הפעילות ונשאר תפוס. כאשר פעולה זו מתבצעת פעמים רבות זכרון נתפס על ידי התוכנית לשוא, מכיוון שלא נעשה בו כל שימוש. גם כאן [[שפות תכנות]] מתקדמות ניסו לתת פתרונות הולמים, כגון [[איסוף זבל (תכנות)|"איסוף זבל"]] מובנה אוטומטי.
 
==מחלקות לטיפול במצביעים==