В настоящее время я пытаюсь создать новые объекты структуры во время цикла for. Они передаются в новую функцию, которая обрабатывает их.
int start_i = 0;
for(int t = 0 ; t < t_max ; t++) {
// Arguments for the threads.
struct arguments* arguments1 = malloc(sizeof(struct arguments));
arguments1->old_array = old_array;
arguments1->current_array = current_array;
arguments1->next_array = next_array;
arguments1->i_start = start_i;
if (t == t_max - 1) {
arguments1->i_end = i_max;
}
else {
arguments1->i_end = start_i + i_size - 1;
start_i += i_size;
}
printf("%d\n", &arguments1);
pthread_create(&thread_ids[t], NULL, &help, (void*)arguments1);
}
Как видите, я использую pthreads. Проблема в том, что вместо того, чтобы все объекты были новыми, они просто перезаписывают старый, так как местоположение адреса, которое я печатаю, является тем же самым. Мне нужно, чтобы объекты были новыми, потому что в противном случае разные потоки будут работать с общими данными.