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

תוכן שנמחק תוכן שנוסף
SilvonenBot (שיחה | תרומות)
שורה 22:
 
==שימוש מושכל במצביעים==
השימוש במצביעים הוא בעל פוטנציאל גבוה לבעיות בעיקר בגלל האפשרות ל[[חריגה|חריגת]] גישה. לעומת זאת, קשה לוותר על היתרונות שהשימוש בהם נותן. בשל כך הביאו [[שפות תכנות]] מתקדמות ב[[מדעי המחשב]] (כמו [[Java]] ו־[[C sharp|C#]]) לשימוש בטיפוסים קצת יותר מוגבלים המאפשרים הצבעה על אובייקטים, אולם לא מאפשרים ביצוע מניפולציה מספרית על המצביע. כך למעשה מתבצעת הפרדה בין היכולת להצביע על אובייקטים, לבין היכולת לגשת לכתובות אקראיות בזיכרון.
 
בעיה נוספת הקשורה במצביעים ובהקצאת זיכרון דינאמית, היא [[דליפת זיכרון]], הנובע מכך שבהליך מסוים זיכרון שהוקצה לצורך פעולה, לא שוחרר בתום הפעילות ונשאר תפוס. כאשר פעולה זו מתבצעת פעמים רבות זיכרון נתפס על ידי התוכנית לשווא, מכיוון שלא נעשה בו כל שימוש. גם כאן [[שפות תכנות]] מתקדמות ניסו לתת פתרונות הולמים, כגון [[איסוף זבל (תכנות)|"איסוף זבל"]] מובנה אוטומטי.