Проблема с массивом структур Язык Си

Была задача, сделать массив структур, которая после наполнения, циклом передавался элемент массива в поток. Но после передачи, я заметил что передается не элемент массива, а полностью массив. И вот я не понимаю в чем проблема 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 *) преобразование потому что надо будет передавать в поток


Ответы (0 шт):