c ++将带引号的字符串作为char数组传递给函数

时间:2013-08-23 16:24:35

标签: c++ arrays pointers char function-pointers

所以我有一个声明为:

的函数
void writeFile (unsigned char *fileName, unsigned char *data)

如果我按这样调用函数:

writeFile("f.txt", "Test1");

很好。

如果我再打一次这样的电话:

writeFile("s.txt", "Test2\nline");

fileName很好,但数据已损坏(前5个字节搞乱了)。

如果我这样做第三次电话:

writeFile("f.txt", "Test3\r\nline");

fileName已损坏,数据的前5个字节搞乱了。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

我相信你的问题与使用无符号字符有关,当我把它放入我的代码时,它抱怨编译它。它可能与unsigned char无法使用\n之类的转义字符有关,但我无法确定。

IntelliSense: argument of type "const char *" is incompatible with parameter of type "unsigned char *"

我得到编译错误。

当我将其更改为常规char *作为参数时,它工作正常。