类型“ const char *”的参数与类型“ char *”的参数不兼容

时间:2019-08-08 13:15:40

标签: c++ char undefined const string-literals

我正在尝试加入“ ip-api.com/json/”并声明char为“ ip_address” 但是“ ip-api.com/json/”用红色下划线表示:

argument of type "const char *" is incompatible with parameter of type "char *"

怎么办?

TCHAR path[_MAX_PATH];
        _tcscpy(path, ip_address);
        _tcscat("ip-api.com/json/", ip_address);

1 个答案:

答案 0 :(得分:3)

在此次通话中

_tcscat("ip-api.com/json/", ip_address);

您正在尝试修改字符串文字。

C ++中的字符串文字具有常量字符数组的类型。因此转换为指针的类型为const char *

您不能更改字符串文字。尝试更改字符串文字会导致未定义的行为。

此外,您必须保留足够大的内存,以将ip_address所指向的字符串附加到字符数组中的另一个字符串上。

例如

char address[_MAX_PATH] = "ip-api.com/json/";
_tcscat( address, ip_address);