المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
عند تنفيذ البرنامج لمجموعه من مصفوفة سجلاتrecords تصل عددها الى 100 تظهر رسالة خطأ
"stack overflow " في حالة التعريف التالي
pp=array[1..100] of patient;//records
list=array[1..100]of integer
list1=array[1..100]of double
وتظهر رسالة خطأ "invalid floating point operation" في حالة التعريف التالي
pp=array[1..100] of patient;//records
list=array[1..100]of integer
list1=array[1..100]of double
فماهو الحل؟
المشاركات : 563
المواضيع 28
:
: 0
الإنتساب : Dec 2008
stack overflow : فيض في حيز ذاكرة المكدس , المحجوزة لمتغيرات/بارامترات .....البرنامج
المحمل للذاكرة بشكل مؤقت .
الحل المبدأي : إظافة التوجيهين في الـ Dpr لكي يكون التأثير على كامل المشروع
كود :
{[COLOR=#c00000][B]$RangeChecks[/B][/COLOR] OFF} {[COLOR=#c00000][B]$OverFlowChecks[/B][/COLOR] OFF}
- إذا حدث فيض سيكون هناك ReSet للقيم المحسوبة مثلا فيض قيمة Byte عن 255 سيكون
100$ أي 0 .
بالتوفيق,,
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
ماذا تقصد ب Dpr وأين يوجد ممكن توضح
المشاركات : 563
المواضيع 28
:
: 0
الإنتساب : Dec 2008
- الـ Dpr File =
Delph
Project , نضغط على Ctrl + F12 للسويتش بين الـ Unit و الـ Project.dpr
- لا عليك , يبدو أن الإجراء المستعمل يتجاوز الـ Max المحدد للـ Record = 100
لذا أظف التوجيهين في أعلى الوحدة يكفي :
PHP كود :
unit Unit1;
{$RangeChecks OFF} {$OverFlowChecks OFF}
interface
uses
//...
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
لقد اضفت التوجيهان لكن بقي الخطأ فماذا افعل
المشاركات : 563
المواضيع 28
:
: 0
الإنتساب : Dec 2008
إذا ضع الإجراء المسؤول على تحرير الخطأ !
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
اعتقد ان التعريف هو السبب حيث انه يتم تنفيذ البرنامج نصفه ثم يتوقف عندما استخدم جدول ل100 حاله اما عندمااستخدم جدول ل50 حاله يتنفذ البرنامج فما هو الحل
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
تظهر لي رسالة خطأ عندما انفذ برنامجي المتكون من مصفوفة حجمها 500 وكل عنصر فيها عباره عن قيد متكون من 8 عناصر وهذه الرساله هي "stack overflow"
علما اني استخدمت الايعاز التالي "{$RangeChecks OFF} {$OverFlowChecks OFF}"لكنه لم ينفع وقد قالوا لي علي ان اكبر حجم ذاكرة دلفي لكني لا اعرف كيف اقوم بتكبير حجم الذاكرة
فما هي الخطوات لتكبير حجم ذاكرة دلفي
المشاركات : 2,293
المواضيع 157
:
: 81
الإنتساب : Dec 2008
وعليكم السلام ورحمة الله وبركاته
الاستثناء Stack Overflow يعني ارتكاب دفع (PUSH) مفرط في الـ Stack (الحيز المحجوز من الذاكرة للبرنامج)
وعادة هذا ناجم عن حلقات غير منتهية
إقتباس :من مصفوفة حجمها 500
تأكد أن الحلقات لا تتجاوز العدد.
المشاركات : 35
المواضيع 14
:
: 0
الإنتساب : Oct 2010
السلام عليكم
لقدتأكدت أن الحلقات لا تتجاوز العدد لكن مازالت الرسالهStack Overflow تظهر
علما اني عندما انفذ نفس البرنامج على بيانات اقل(مصفوفة حجمها 100 ) ينفذ ولا تظهر الرساله لكني احتاج الى(مصفوفة حجمها 500)