pthread_create错误

Tec*_*163 1 c

我有

    client_sock = accept(server_sock, (struct sockaddr *)&client_name, &client_name_len);        
    if (pthread_create(&newthread , NULL, (void * ) accept_request, client_sock) != 0) {
            perror("pthread_create");
    }
Run Code Online (Sandbox Code Playgroud)

这只是整个脚本的一部分.每次我尝试编译它,我得到warning: passing argument 4 of 'pthread_create' makes pointer from integer without a cast

知道为什么会这样吗?提前致谢.

Pot*_*ter 5

参数4是client_sock,传递给的参数accept_request.它应该是一个指针,但由于它只是传递给你的函数,它可以是一个整数而不会造成任何伤害.只需将其转换void*为删除警告即可.

另一方面,第三个参数accept_request应该是一个接受void*和返回的函数指针void*.你不应该把它投射到void*.最好更改accept_request符合规范的声明.

void *accept_request( void *client_sock );
Run Code Online (Sandbox Code Playgroud)