我有一个以这种方式声明和分配的结构
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 之前在 main 中初始化的字段没有在线程中定义。
void* worker_start(void *param) {
t *current;
current = (t*) param;
...
}
代码有什么问题?我在这里做坏事吗?