Я пытаюсь понять, как передать индекс массива в другую функцию.Как передать индекс массива в другую функцию в c
Вот у меня есть:
for(i=0; i<file_cnt; i++){
iret1 = pthread_create(&(file[i]), NULL, get_checksum, (void*)&filenames[i]);
printf("%s\n", filenames[i]);
}
В функции get_checksum
, я в конце концов нужно индекс имен файлов, но i
не доступен в этой функции.
В функции get_checksum
,
void* get_checksum(void* a){
char *filename = (char *) a;
.....
}
Я прошел в a
как указатель полукокса по отношению к filenames[i]
.
Однако мне нужно сделать вычисления позже в функции: get_checksum
, которые включают в себя получение индекса массива сумм. Поэтому мне действительно нужен индекс filenames
, который вместо этого будет передан в функцию get_checksum
.
Любые предложения, как передать индекс массива в другую функцию?
Создайте структуру, заполните структуру всеми соответствующими параметрами и передайте ее в pthread_create - http://www.amparo.net/ce155/thread-ex.html – OldProgrammer