how to pass an array to a thread in c?
void* my_Func(void *received_arr){
int *arr = (int *)received_arr;
for (int i=0; i<5; i++){
printf("Value %d: %d\n", i+1, arr[i]);
}
//Now use arr[] as you wish
}
//In main:
int values[n];
pthread_create(&thread, NULL, my_Func, (void *)values);
//Grepper profile: https://www.codegrepper.com/app/profile.php?id=9192void* my_Func(void *received_arr_Val){
int single_val = (int *)received_arr_Val;
printf("Value: %d\n", single_val);
//Now use single_val as you wish
}
//In main:
int values[n];
pthread_create(&thread, NULL, my_Func, values[i]);
//i is the index number of the array value you want to send
//n is the total number of indexes you want (array size)
//Grepper profile: https://www.codegrepper.com/app/profile.php?id=9192//Runnable example
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* my_Func(void *received_arr_Val){
int single_val = (int *)received_arr_Val;
printf("Value: %d\n", single_val);
//Now use single_val as you wish
}
int main(){
int values[5];
printf("\nEnter 5 numbers:\n");
for (int i=0; i<5; i++){
scanf("%d", &values[i]);
}
pthread_t tid[5];
for(int i=0; i<5; i++){
pthread_create(&(tid[i]), NULL, my_Func, values[i]);
}
for (int i=0; i<5; i++){
pthread_join(tid[i], NULL);
}
}
//To run: $ gcc [C FILE].c -lpthread -lrt
// $ ./a.out
//Grepper profile: https://www.codegrepper.com/app/profile.php?id=9192//Runnable Example
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void* my_Func(void *received_arr){
int *arr = (int *)received_arr;
for (int i=0; i<5; i++){
printf("Value %d: %d\n", i+1, arr[i]);
}
//Now use arr[] as you wish
}
int main(){
int values[5];
printf("\nEnter 5 numbers:\n");
for (int i=0; i<5; i++){
scanf("%d", &values[i]);
}
pthread_t tid;
pthread_create(&tid, NULL, my_Func, (void *)values);
pthread_join(tid, NULL);
}
//To run: gcc [C FILE].c -lpthread -lrt
//./a.out
//Grepper profile: https://www.codegrepper.com/app/profile.php?id=9192