C++ - 我已经分配了一个char数组,内容是` b

Tob*_*aar 1 c++ char

我想连接两个const char*但是当我这样做时,我得到了这些符号:` b

我做以下事情:

 char* path = new char[strlen(args->targetFileName) + strlen(args->targetFilePath)];
cout << path << endl;
strcat(path,args->targetFilePath);
cout << path << endl;
strcat(path,args->targetFileName);
cout << path << endl;
Run Code Online (Sandbox Code Playgroud)

输出:

`?b
`?b/home/user/Arbeitsfläche/
`?b/home/user/Arbeitsfläche/Auto.png
Run Code Online (Sandbox Code Playgroud)

什么是错?有什么建议??

Chr*_*ton 6

您尚未初始化path变量.你为它分配了内存,但它最初只包含垃圾,偶然有一个空值.然后连接字符串,以便将路径附加到垃圾箱.strcat用a 替换第一个strcpy,你应该是对的.