创建线程时出现分段错误

时间:2014-02-28 03:23:59

标签: c multithreading pthreads

运行此程序时出现分段错误。使用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) {

  }
}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

您定义了一个指针pthread_t *tid,但从未给它一个有效值,请将其更改为:

pthread_t tid;
pthread_create (&tid, NULL, (void *) start, (void *) &P);