调用我的函数时,C ++无法将unsigned char转换为char *

时间:2015-09-27 20:44:50

标签: c++

在这个程序中,我使用函数gethostname来获取服务器的主机名。但是在下面运行时:

#include <sys/types.h>
#include <sys/socket.h>
⋮
int  rc;
int  server_sock;
u_char hostname[50];
⋮
rc = gethostname(&hostname,sizeof(hostname));
printf("hostname = %s\n",hostname);

我收到错误:

Cannot convert u_char(*)[50] to char* for argument '1' to 'int gethostname(char*, size_t)'

1 个答案:

答案 0 :(得分:3)

您有一个错误类型的数组(u_char而不是char)并且您正在传递指向数组的指针而不是直接传递它 - &hostname的类型为{ {1}} - 你只想要一个指针,它只是u_char(*)[50]

正确的方法是:

hostname