gpt4 book ai didi

c++ - 从 const char 数组初始化为动态分配的 const char 数组

转载 作者:行者123 更新时间:2023-12-02 10:25:02 25 4
gpt4 key购买 nike

我正在尝试编写将 const char 数组分配给动态分配的 const char 数组的代码。
我试着这样做

const char staticArray[4] = "abc";
const char * ptrDynamicArray;
ptrDynamicArray = new const char[4](staticArray);

但是我收到一个错误(“数组新 [-fpermissive] 中的带括号的初始化程序”)。

我有两个问题:
  • 我该如何解决它 - 比如将其关闭(我使用的是 Code::Blocks 16.01)?
  • 我可以以其他方式初始化动态分配的 const char 数组吗?
  • 最佳答案

    重载新运算符将完成您的工作。

    void * operator new[](size_t n, const char *s) {
    void *p = malloc(n);
    strcpy((char *)p, s);
    return p;
    }

    现在可以像这样调用 new 运算符:
    const char staticArray[4] = "abc";
    const char * ptrDynamicArray;
    ptrDynamicArray = new (staticArray) char[4];

    关于c++ - 从 const char 数组初始化为动态分配的 const char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41981658/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com