2

我有以下代码

 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 个值,但在函数体中使用此代码仅返回第一个值。我对指针很困惑,无法弄清楚获取整个数组的方法。

请告诉我我需要在我的代码中进行哪些修改。

谢谢

4

1 回答 1

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;
}
于 2012-05-23T00:04:27.987 回答