1

タイプ int pthread_create の配列を渡してエラーが発生しています:

  histogram.c:138:3: warning: passing argument 3 of
 ‘pthread_create’ from incompatible   pointer type [enabled by default]
  expected ‘void * (*)(void *)’ but argument is of type ‘void * (*)(int *)’

  void *output_results();
  pthread_create(&t2, NULL, output_results, (void *)bins);

  void *output_results(int *bins) {
      some code
  }
4

2 に答える 2

5

する必要があります

void *output_results(void*);
pthread_create(&t2, NULL, output_results, (void *)bins);

void *output_results(void *data) {
    int *bins = (int*)data;
    // some code
}

エラーメッセージは非常に明確です。関数は型である必要があり、そうではvoid * (*)(void *)ありませんvoid * (*)(int *)(さらに、のプロトタイプはoutput_resultsその定義と一致しませんでした)。

于 2013-10-08T17:47:35.310 に答える
0

コンパイルエラーは がpthread_create期待されているためですvoid *output_results(void *bins)が、 がありますint *bins

また、使用している の宣言はoutput_resultsその定義と一致しません。

于 2013-10-08T17:48:39.667 に答える