我正在尝试编写将 const char 数组分配给动态分配的 const char 数组的代码。
我试着这样做
const char staticArray[4] = "abc";
const char * ptrDynamicArray;
ptrDynamicArray = new const char[4](staticArray);
但是我收到一个错误(“数组新 [-fpermissive] 中的带括号的初始化程序”)。
我有两个问题:
最佳答案
重载新运算符将完成您的工作。
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/