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