この方法で宣言および割り当てられた構造体があります
typedef {
char* a; char* b; int c; int d; FILE *e;
} t;
[...]
ready= malloc(sizeof(t));
strncpy (ready->a, ss1, length);
strncpy (ready->b, ss2, length);
ready->c= f; ready->d= g;
ready->e= fopen(file, "w");
スレッドに渡したい
pthread_create(thread_id, NULL, worker_start, &ready);
スレッド関数でいくつかの作業を開始すると、create を呼び出す前にメインで初期化したフィールドがスレッドで定義されていないことは明らかです。
void* worker_start(void *param) {
t *current;
current = (t*) param;
...
}
コードの何が問題になっていますか? 私はここで何か悪いことをしていますか?