为什么我在 C 中遇到这个错误?不兼容的类型
15:9:错误:从类型“char *”分配给类型“char[3]”时,类型不兼容
#include <stdio.h>
int main(int argc, char *argv[])
{
char servIP[3];
int servPortNum;
if(argc<3)
{
printf("Usage: clientApp servIP servPortNum\n");
}
servIP = argv[1];
servPortNum = atoi(*argv[2]);
}
15:9: error: incompatible types when assigning to type ‘char[3]’ from type ‘char *’
#include <stdio.h>
int main(int argc, char *argv[])
{
char servIP[3];
int servPortNum;
if(argc<3)
{
printf("Usage: clientApp servIP servPortNum\n");
}
servIP = argv[1];
servPortNum = atoi(*argv[2]);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
但您确定
servIP
对于 IP 地址来说足够大吗?But are you sure
servIP
is big enough for an IP address?您不能分配给数组。使用
strcpy
或strncpy
函数将字符串复制到char
数组中。You cannot assign to arrays. Use
strcpy
orstrncpy
function to copy a string in an array ofchar
.servIP
是一个数组,而不是指针。数组可以转换为指针,但它们不是同一件事,指针不会转换为数组。servIP
is an array, not a pointer. Arrays convert to pointers, but they aren't the same thing and pointers don't convert to arrays.你不能像这样分配一个数组。逐个成员分配它,或使用
char *servIP
代替。You can't assign an array like this. Assign it member-by-member, or use
char *servIP
instead.