c++ - 类型 "const char *"的参数与类型 "char *"的参数不兼容

标签 c++ char undefined constants 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);

最佳答案

在这次通话中

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

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

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

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

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

例如

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

关于c++ - 类型 "const char *"的参数与类型 "char *"的参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57413540/

相关文章:

c - 我无法在 C 中获取 char 数组的值

返回未定义的javascript函数

php - undefined variable 和联系表格php中的错误

c# - 如何在 C# 中解析未知的日期时间格式

c++ - std::ifstream::open不一致失败

c++ - 使用 cstrings 时未处理的异常

c++ - glBlendFunc 和 alpha channel

c - 引用 char 数组时出现段错误

c++ - A* 寻路保证找到最短路径?

c++ - realloc 指针在功能失效时发生变化