我正在尝试将字符串作为参数传递给函数。但该函数没有调用。请指出错误。
//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]);
但是这个函数是被call调用的。
请告诉我该怎么做
最佳答案
您的函数void senddata(char message[])
需要一个char *
(或char []
,两者基本相同) ,但您使用常量字符串调用它,因此它会获得const char * message
(或const char message[]
)。您无法将 const 转换为非常量。
您需要传递一个变量(非常量):
char * dummy = "0000000000000001";
senddata(dummy);
或者(可能是更好的方法)将参数声明为 const:
void senddata(const char message[])
关于c - 无法将字符串作为 c 中的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38415548/