השחתת זיכרון

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

דוגמה פשוטה: כתיבה לתא במערך שלא קיים. מערכים ב‑C מתחילים ב‑0.
אם כותבים יותר מדי, המידע יכול לדחוף החוצה ולשנות דברים אחרים.

גלישת חוצץ היא כשמכניסים יותר מדי מידע למקום קטן. הדבר יכול לשבור את המחסנית (stack).
פונקציה שומרת איפה לחזור בסיום שלה. אם זה נדרס, המחשב עלול "לקפוץ" למקום אחר.
כך אפשר להריץ קוד רע על המחשב.

ב‑Java יש בדיקה אוטומטית של גבולות מערך. זה מונע הרבה תקלות.
יש גם כלים כמו Valgrind שעוזרים למצוא טעויות כאלה בזמן בדיקות.
בתוכנות גדולות קשה למצוא את כל הבאגים האלה.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!