c - 无法将字符串作为 c 中的参数传递

标签 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]);

但是这个函数是被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/

相关文章:

c# - 替换模板中字符串的最快方法

python - python 中 html 文件的 string.format() 问题

ios - 我怎样才能插入一个字符串的二维数组

javascript - Js 如何获取字符串中的数字之和?

c - 将指针传递给指针与传递指针以在 C 中进行初始化

c - 系统调用读取行为怪异

c - 下面的宏有什么用?

c - 为什么指针地址递增指向下一个 block

无法跳出 "While"循环

C++ 字符串覆盖链接错误