C6262
تحذير C6262: تستخدم دالة <ثابت> وحدات البايت من مكدس: يتجاوز/تحليل: stacksize <ثابت>. خذ بعين الاعتبار نقل بعض بيانات إلى كومة الذاكرة المؤقتة
هذا التحذير يشير إلى أن مكدس قد تم الكشف عن الاستخدام عند تجاوز عتبة معينة مسبقاً داخل دالة. الحجم الافتراضي لبنية تخزين العناصر لترتيب هو تحذير هو 16 كيلو وحدات البايت. مكدس ذاكرة مؤقتة، حتى في الوضع مستخدم، هو محدودة، وفشل في تنفيذ صفحة مكدس يتسبب استثناء تجاوز سعة مكدس. _resetstkoflwاسترداد دالة من شرط تجاوز سعة مكدس الذاكرة مؤقتة، السماح لأحد برامج إلى متابعة بدلاً من تعرض للفشل مع خطأ استثناء فادح. إذا _resetstkoflwدالة هو لا تسمى، هناك هو لم توجد صفحة الحماية بعد استثناء السابقة. المرة القادمة التي هو هناك استثناء لا يوجد إطلاقا تجاوز سعة مكدس الذاكرة مؤقتة، وإنهاء العملية بدون تحذير.
إلى تصحيح هذا التحذير، يمكنك أما تحريك بعض بيانات إلى heap، أو قم بزيادة الحجم الرصة. في كلتا الحالتين، قبل إجراء التغييرات الخاصة بك تعليمات برمجية، يجب مراعاة المزايا والعيوب الخاصة هي الطريقة التي تأخذ.
مثال
تنشئ التعليمة البرمجية التالية في هذا التحذير لأن char bufferيخصص 16382 وحدات البايت، والمتغير المحلي الصحيح iيخصص آخر 4 وحدات البايت, التي تتجاوز معا الافتراضي حد 16 كيلو وحدات البايت الحجم رصة:
#include <windows.h>
#define MAX_SIZE 16382
void f( )
{
int i;
char buffer[MAX_SIZE];
i = 0;
buffer[0]='\0';
// code...
}
تصحيح تعليمات برمجية التالية هذا التحذير بنقل بعض بيانات إلى كومة الذاكرة المؤقتة:
#include <stdlib.h>
#include <malloc.h>
#define MAX_SIZE 16382
void f( )
{
int i;
char *buffer;
i = 0;
buffer = (char *) malloc( MAX_SIZE );
if (buffer != NULL)
{
buffer[0] = '\0';
// code...
free(buffer);
}
}
إلى الصحيح هذا التحذير بواسطة ضبط الحجم مكدس الذاكرة المؤقتة، اتبع الخطوات التالية:
في قائمة مشروع, انقر فوق خصائص.
صندوق الحوار الصفحات الخاصية هو dهوplayed.
توسيع شجرة وحدة التحكم "خصائص تكوين".
توسيع شجرة وحدة التحكم/C + + C.
انقر فوق الأمر خط الخصائص.
في خيارات إضافى إضافة /analyze:stacksize16388.
راجع أيضًا:
المهام
كيفية القيام بما يلي: استخدام تدقيقات وقت التشغيل الأصلي