无法在c中传递字符串作为参数

时间:2016-07-16 20:55:58

标签: c string

我正在尝试将字符串作为参数传递给函数。但是这个功能并没有调用。请说出错误。

//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]);

但是这个函数叫做调用。

请告诉我该怎么做

1 个答案:

答案 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[])