提问者:小点点

删除字符时检测到堆损坏*


我正在尝试复制一个常量字符*到字符*下面是我写的内容:

int main()
{
    const char* string = "Hello";
    int size = strlen(string) + 1; // add '/0' in the end
    char* data = new char(size);
    memcpy(data, string, size);
    delete data;
}

不幸的是,我得到了一个错误,“heap cruption detected:after normal block(.77)”。我不知道问题出在哪里。

我在visual studio 2019下使用MSVC遵守我的代码。


共1个答案

匿名用户

不是分配字符数组,而是分配值为的单个字符。

您应该使用分配数组,使用删除数组。