char 配列を削除しようとするとヒープが破損するのはなぜですか。
以下のコードは「main()」にあります
case 'r':
char *StrTReverse = new char;
std::cout << "Enter a string: " << std::endl;
std::cin >> StrTReverse;
std::cout << "String reversed: " << ReverseString(StrTReverse) << std::endl;
system("pause");
delete[] StrTReverse; <- Here the is the crash
break;
以下はReverseString関数です
char* ReverseString(char string[])
{
int StringLength = std::strlen(string);
char *NewString = new char[StringLength];
for (int i = 0, j = StringLength-1; i < StringLength;i++,j--)
{
NewString[i] = string[j];
}
NewString[StringLength] = '\0';
return NewString;
};
なぜこれが起こっているのか理解できません。私はc ++が初めてなので、それを念頭に置いてください。助けてくれてありがとう:)