无法在 C 语言中显示从函数到 main 的数组值


int array[1000];
int array_size;
void * min_max_thread (void *arg)
{
int min = array[0];
int max = array[0];
for (int i = 1; i < array_size; i++)
{
if (min > array[i])
{
min = array[i];
}
if (max < array[i])
{
max = array[i];
}
}
int *min_max = malloc (2);
return min_max;
}

int main (int argc, char *argv[])
{
// Read array size and elements from the user
printf ("Enter the number of elements in the array: ");
scanf ("%d", &array_size);
printf ("Enter the elements of the array: ");
for (int i = 0; i < array_size; i++)
{
scanf ("%d", &array[i]);
}
pthread_t min_max_thread_id;
// Create threads
pthread_create (&min_max_thread_id, NULL, min_max_thread, NULL);
// Wait for threads to finish
void *min_max_result;
pthread_join (min_max_thread_id, &min_max_result);
// Print results
int *min_max = (int *) min_max_result;
printf ("Minimum: %dn", min_max[0]);
printf ("Maximum: %dn", min_max[1]);
return 0;
}

我已经尝试了很多方法,直到有人告诉我把值放在数组中,并使用malloc重新分配,但无法帮助进一步,我从来没有经验将数组从函数移动到main。

我尝试添加malloc:

int *min_max = malloc (2);

但它没有工作。

提前谢谢你。

int *min_max = malloc (2);——比;Int *min_max = malloc (2 * sizeof* min_max);

min_max[0] = min;

min_max[1] = max;

感谢@Support Ukraine

最新更新