从指针数组中检索数组

时间:2012-05-23 00:02:13

标签: c arrays pointers

我有以下代码

 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个值,但在函数体中使用此代码只返回第一个值。我对指针非常困惑,并且无法找到获得整个数组的方法。

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

由于

1 个答案:

答案 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;
}