Проблема с массивом структур Язык Си
Была задача, сделать массив структур, которая после наполнения, циклом передавался элемент массива в поток. Но после передачи, я заметил что передается не элемент массива, а полностью массив. И вот я не понимаю в чем проблема code:
#include <stdio.h>
struct postFields {
char login[56];
char passwd[56];
};
struct moduleData {
struct postFields * post_fields;
};
void * func(void *p_module_data);
int main(int argc, char const *argv[])
{
struct moduleData module_data[2];
struct postFields post_fields[2] = {"log1", "pass1", "test2", "test2"};
struct postFields post_fields1[2] = {"g1", "s1", "t2", "t2"};
module_data[0].post_fields = (struct postFields *)&post_fields;
module_data[1].post_fields = (struct postFields *)&post_fields1;
printf("(main)\t%s\n", module_data[0].post_fields[0].login);
func((void *)&module_data[0]);
return 0;
}
void * func(void *p_module_data) {
struct moduleData * module_data = (struct moduleData *)p_module_data;
printf("(func)\t%s\n", module_data[1].post_fields[1].login);
return 0;
}
После того как я передал 0 элемент массива module_data в функцию func я почему то могу взаимодействовать с 1 элементом массива module_data
(void *) преобразование потому что надо будет передавать в поток