خطأ المؤشر القديم
يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. (مارس 2016) |
خطأ اللمؤشر القديم (stale pointer bug)، والمعروف باسم خطأ التعريج (aliasing bug) هو فئة من الأخطاء الدقيقة في البرمجة التي تنتج في الكود الذي يقوم بتحديد الذاكرة الدينمكية، خصوصاً من خلال عملية مالوك (malloc function) أو ما يعادلها.
إذا أعطيت عدد من المؤشرات كمية كبيرة من أماكن التخزين، فإنة قد يتم تحرير مكان التغزين أو إعادة توزيعها (ثم نقلها) من alias إلى آخر، مما قد يؤدي إلى اختفاء (وربما انفصال) وفقدها اعتماداً على الحالة وتاريخ تحديد المكان لمنطقة مالوك. يمكن تفادي الخطأ بعدم تكوين alias للذاكرة المخصصة، وذلك بالتحكم بالنطاق الدينميكي للمرجع إلى مكان التخزين بحيث لا يبقى شيء عند تحريرها، أو باستخدام جامع القمامة، على شكل مكتبة تخصيص ذاكرة ذكي (intelligent memory-allocation library)، أو كما يتوفر في الغات العالية المستوى، مثل Lisp.
يرتبط مصطلح «خطأ التعريج» لغة البرمجة سي، لكنها كانت تستخدم بنفس الطريقة في ألغول 60 وولغة Fortran في الستينات.