C++ : cannot convert from 'char *' to 'char []' problem

标签 c++

我不是 c/c+ 程序员(我知道 delphi),无论如何我试图编译一个用 c++ 编写的程序,我已经将它更改为接受一些参数(一个文件的路径,它在原始代码中是硬编码的) 从命令行, 原来的行是

char Filepath[50] = "F:\\mylib\\*.mp3";

我把它改成了

char Filepath[50] = argv[1]; 

但我收到“无法从‘char *’转换为‘char []’”错误, 主要功能就像

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

我该怎么办??我正在使用 MSVC6。

谢谢

最佳答案

使用:

char *Filepath = argv[1];

argv[1] 已经包含您想要的字符串时,无需为 50 个字符分配空间。此外,您不必决定命令行参数中的最大字符数;该空间已分配给您。

但是请注意,上面的操作不会复制字符串,因此如果您打算修改字符串(可能通过附加扩展名或其他任何方式),那么您将不得不使用strcpy() 或类似的解决方案。在 C 中处理字符串比在 Delphi 中需要更多的手动字符复制工作。

关于C++ : cannot convert from 'char *' to 'char []' problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671728/

相关文章:

c++ - 使用宏替换工厂模式样式 API 中的 "create()"函数

c++ - 如何更改 boost 线程限制?

c++ - QTableWidget - 组合框委托(delegate)我如何允许每个单元格有不同的选项

c++ - 函数原型(prototype)中的不同参数名称

c++ - 我如何使用模板化的 typedefs,它们是_in_一个类,来自类外部(例如,由另一个类),与 boost::graph 相关

c++ - 为什么 std::vector of boost::variant 在 boost spirit 中导致解析问题?

c++ - 从基类引用调用派生类方法

C++:将二维数组传递给函数

c++ - 创建和访问指向 QObject 的指针的 QVector 的元素

c++ - 如何显示像 theta 这样的数学符号