我有以下代码
int arr[5];
printf("Input values:");
for (i=0;i<5;i++)
scanf("%d",&arr[i]);
pthread_create(&thread1, NULL, &inputfunction, (void *)&arr);
pthread_join(thread1,NULL);
return 0;
}
void *inputfunction(void *ptr_value)
{
int value= *((int *) ptr_value);
printf("value=%d", value);
// printf(&(ptr_value));
return NULL;
}
我想检索我在数组中输入的所有5个值,但在函数体中使用此代码只返回第一个值。我对指针非常困惑,并且无法找到获得整个数组的方法。
请告诉我在代码中需要进行哪些修改。
由于
答案 0 :(得分:3)
试试这个:
pthread_create(&thread1, NULL, &inputfunction, &(arr[0]));
void *inputfunction(void *ptr_value)
{
int *values = ptr_value;
for (int i = 0; i < 5; i++)
printf("value %i = %i\n", i, values[i]);
return NULL;
}