我正在尝试将字符串作为参数传递给函数。但是这个功能并没有调用。请说出错误。
//Main calling
senddata("0000000000000001");
// Function to call
void senddata(char message[])
{
if (sendto(s, message, strlen(message) , 0 , (struct sockaddr *) &si_other, slen) == SOCKET_ERROR)
{
printf("sendto() failed with error code : %d" , WSAGetLastError());
exit(EXIT_FAILURE);
}
fprintf(stderr, "Value of errno: %d\n", errno);
}
我也尝试了其他方法
void senddata(char* message);
或
void senddata(char message[16]);
但是这个函数叫做调用。
请告诉我该怎么做
答案 0 :(得分:0)
您的函数void senddata(char message[])
需要char *
(或char []
,它基本相同),但您使用常量字符串调用它,所以得到const char * message
(或const char message[]
)。您不能将const转换为非const。
您需要传递一个变量(非const ):
char * dummy = "0000000000000001";
senddata(dummy);
或(可能更好的方法)将参数声明为const:
void senddata(const char message[])