سؤال

لنفترض أن لدي متغير LPSTR. كيف يمكنني تحرير الذاكرة بعد استخدام المتغير. فعلا

LPSTR szFileName = GetSBCSBuffer(sFilePath); // sFilePath is a CString
delete szFileName;

أو

delete []szFileName;

إنصح بلطف

هل كانت مفيدة؟

المحلول

إذا تم تخصيص الذاكرة باستخدام new char[SIZE] ثم يجب تحريرها باستخدام delete [].

نصائح أخرى

لا يمكنك الإجابة على هذا السؤال دون معرفة تفاصيل GetSebCSBuffer. نأمل كل من كتب الوظيفة تركتك برمز و / أو وثائق حتى تتمكن من معرفة أين تأتي السلسلة من. قد يكون الأمر كذلك أيا من بدائلك صحيحة. ربما استخدم مؤلف GetSebcsBuffer مخصصا آخر للذاكرة أو إرجاع مؤشر إلى موقع داخلي إلى SFILEPATH. في الحالة الأخيرة، سيكون الأمر سيئا للغاية للاتصال بأي موالك.

لقد لاحظت أنك أجبت على السؤال بنفسك في تعليقك إجابة elder_george. وبعد يستخدم التنفيذ جديد [] حتى تحتاج إلى حذف [].

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top