я знаю, что этот вопрос был задан, но я не мог исправить свою программу
void swap1(char*str1,char*str2)
{
char *ezer =new char[strlen(str1)];
for (int i = 0 ; i <= strlen(str1);i++)
ezer[i]=str1[i];
delete [] str1;
str1= new char[strlen(str2)];
for (int i = 0 ; i <= strlen(str2);i++)
str1[i]=str2[i];
delete [] str2;
str2= new char[strlen(ezer)];
for (int i = 0 ; i <= strlen(ezer);i++)
str2[i]=ezer[i];
delete[] ezer;
}
один раз в первый раз работает летучая мышь во 2-й (с другим значением) раз я получаю сообщение об ошибке ошибка появилась в последней строке delete[] ezer;
почему я не могу удалить ezer
?
Ошибка:
heap corruption detected after normal block (#174) at 0x007D7A48
CRT detected that the application wrote to memory end of heap buffer
std::string
иstd::swap
для достижения такого поведения; это будет более эффективно, хотя и немного отличается. - person Alex Chamberlain   schedule 01.03.2013