C++将const char*复制到char*

leo*_*n22 3 c++ char strncpy

我有一个功能

ClassA::FuncA(const char *filePath)
Run Code Online (Sandbox Code Playgroud)

并希望将此const char字符串*复制到char*!

我的解决方案

char *argv[2];
int length = strlen(filePath);
argv[1] = new char(length +1);
strncpy(argv[1], filePath, length); 
Run Code Online (Sandbox Code Playgroud)

在此之后,我在argv [1]中得到了所需的字符,还有其他一些未定义的字符!

文件路径:

"C:\用户\用户A \Parameter.xmlþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþîþKŸQyá•"

这里有什么不对?strlen的长度还可以!

Luc*_*ore 16

像这样:

argv[1] = new char[length +1](); // () to value-initialize the array
Run Code Online (Sandbox Code Playgroud)

你的版本:

argv[1] = new char(length +1);
Run Code Online (Sandbox Code Playgroud)

只分配一个char并将值初始化为length+1.