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

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