引数を渡すために、pthread には void ポインターが必要です。2 つの変数int
とlong
. 手間を省くために、long
代わりに 2 つ渡します。だからこれは私がすることです:
int main(int argc, char *argv[])
{
/*SOCKET INIT*/
pthread_t socketTh;
long data[2] = {ip2l(IP),80};
pthread_create(&socketTh, 0, &serverConnect, (void*)data); //ERROR HERE
while(true) {
/*event loop*/
}
quit_thread(&sockerTh); //just an EXAMPLE! I don't know how to quit threads, I will google it later
return 0;
}
エラー:
エラー: 'void (*)(void*)' から 'void* (*)(void*)' への無効な変換
しかし、これは long ポインターを void ポインターに再入力する正しい方法ではないようです。Google 検索と同様に、Stackoverflow が私が役に立たなかったと示唆しているスレッドはありません。私は初心者であり、データ型についてまだ迷っているので、ゆっくりと説明してみてください。
ありがとうございました。
更新: main() で
作成します。unsigned long*
これは、この変数がプログラム自体が存続する限り存続することを意味します。