سؤال

وأنا محاولة لخلق التقليب، وأتلقى هذا الخطأ الغريب عندما أنتهي من مشكلتي:

Stack around the variable "temp" was corrupted

وهذا الجزء من المتغير ضمن متداخلة للحلقة:

for(int i = 0 ; i < str_length ; i++)
{
    for(int j = 0 ; j < str_length ; j++)
    {
        char temp[1];

        temp[1] = text[i];
        text[i] = text[j];
        text[j] = temp[1];

        cout << text << endl;
    }
}

وتهيئة النص خارج عن حلقة كسلسلة، وأحصل على نفس الخطأ عندما جعل درجة الحرارة [1] إلى شار أو عدد صحيح. البرنامج يعمل بشكل جيد ولكن أنا قلق لماذا أنا الحصول على هذا الخطأ، لا أحد يعرف لماذا؟

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

المحلول

وتحتاج فقط إلى استخدام char temp; والق أنها temp = text[i];، وما إلى ذلك.

وأنت الوصول إلى نقطة على كومة بايت واحد مؤقت الماضية، وهو باطل. في هذه الحالة، منذ كنت تريد فقط شار واحد، وليس هناك حاجة لمجموعة على الإطلاق.

نصائح أخرى

ودرجة الحرارة [1] غير موجود، يجب أن تقوم به درجة الحرارة [0]. أو بدلا من ذلك، مثل هذا:

char temp;
temp = text[i];
text[i] = text[j];
text[j] = temp;

أو

char temp[1];
temp[0] = text[i];
text[i] = text[j];
text[j] = temp[0];

واستخدام temp[0] للوصول إلى العنصر الأول

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