【发布时间】:2012-10-14 01:23:54
【问题描述】:
可能重复:
Deprecated conversion from string constant to char * error
我正在用 C/C++ 编写一个程序,它试图通过 UDP 套接字进行通信。
我正在处理的代码有一个变量char *servIP,它是通过主函数的输入参数设置的。但是,我希望输入参数是可选的,所以我有代码:
if(argc > 1)
servIP = argv[1]; /* First arg: server IP address (dotted quad) */
else
servIP = "127.0.0.1";
servIP 稍后会转换为网络可用的形式。
当我编译它时,我收到一条警告说“警告:不推荐使用从字符串常量到 char* 的转换”。
我认为这不是输入该 IP 地址的正确方法;有什么更好的方法?
【问题讨论】:
-
请注意,您最终可以检查
argv[1]的内容是否是有效的IP 地址。 -
您是否意识到,您的问题与“套接字编程”、“UDP”.. 无关?
-
您是用 C 还是 C++ 编程?它们是两种不同的语言。
-
问题解决方案,感谢@Karoly Horvath,只需要做:char ip[] = "127.0.0.1"; servIP = ip;