C ++中的动态分配错误

莱内特·金(Lynette King)
#include <iostream>
using namespace std;

char *CopyOf(const char *str);

void main(void)
{
    char *hello = CopyOf("Hello\n");
    cout << hello;
    delete [] hello;
    system("pause");
}

char *CopyOf(const char *str)
{
    char *copy = new char(strlen(str) + 1);
    strcpy(copy, str);
    return copy;
}

当程序运行到delete语句时,发生我的错误。有什么建议吗?非常感谢你。

乔治·希利亚德

您应该分配一个chars数组,如下所示:

char *CopyOf(const char *str)
{
    char *copy = new char[strlen(str) + 1];
    strcpy(copy, str);
    return copy;
}

请注意,我使用方括号,而不是括号。你有什么用括号这样做是初始化一个单一的char与价值strlen(str) + 1然后,您通过调用覆盖了1个字节的缓冲区strcpy您应该强烈考虑使用std::string它将使您免于遭受很多这种C心痛。

另外,要编译代码,必须添加#include <cstring>最后,main()应具有的返回类型int

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

shell C 中的动态分配和分段错误

来自分类Dev

C ++中的动态分配数组

来自分类Dev

释放C中动态分配的内存

来自分类Dev

在C中动态分配线程

来自分类Dev

C ++中的动态分配数组

来自分类Dev

在C中动态分配内存

来自分类Dev

C中未知矩阵的动态分配

来自分类Dev

尝试在C中创建动态分配的字符串数组时出现分段错误

来自分类Dev

递增指针时C错误中的2D动态分配

来自分类Dev

在C中的函数内动态分配函数中的内存

来自分类Dev

在C ++中为联合中的数组动态分配内存

来自分类Dev

在C中的函数中动态分配数组

来自分类Dev

C结构的动态分配

来自分类Dev

C结构的动态分配

来自分类Dev

动态分配失败?C ++

来自分类Dev

C中的字符串动态分配

来自分类Dev

在C中动态分配2D数组

来自分类Dev

在C中动态分配2D数组

来自分类Dev

如何在C ++中访问动态分配的矩阵?

来自分类Dev

在结构中动态分配数组-C

来自分类Dev

如何在C中动态分配静态存储?

来自分类Dev

在cuda中具有动态分配的C ++类?

来自分类Dev

在C ++中动态分配向量的安全方法是什么

来自分类Dev

在C中动态分配的字符串数组

来自分类Dev

在C中动态分配3D矩阵

来自分类Dev

C中的字符串动态分配

来自分类Dev

动态分配的内存必须在C ++中删除吗?

来自分类Dev

C中的FILE指针是动态分配的吗?

来自分类Dev

如何在C ++中引用动态分配的字符数组