运行此程序时出现分段错误。使用gdb,我已确认它是pthread_create
电话。
#include <stdio.h>
#include <pthread.h>
struct point {
int x;
int y;
char name;
};
void *start (void * P) {
while (1) {
}
}
main() {
struct point P;
P.name = 'P';
P.x = 1;
P.y = 2;
pthread_t *tid;
pthread_create (tid, NULL, (void *) start, (void *) &P);
while (1) {
}
}
有人可以帮忙吗?
答案 0 :(得分:4)
您定义了一个指针pthread_t *tid
,但从未给它一个有效值,请将其更改为:
pthread_t tid;
pthread_create (&tid, NULL, (void *) start, (void *) &P);