Я упростил свою задачу до следующего:
Допустим, у меня есть структура (t_struct1), и если я передаю эту структуру в функцию (do_something_with_struct (...)), значения другой структуры (t_struct2) будет скопирован в первую структуру (t_struct1). Итак, в основном ...
void do_something_with_struct(struct){
struct = struct2;
}
do_something_with_struct(struct1);
... должно произойти.
Несколько вещей, которые не разрешены в моей программе: 1. функция ничего не знает о struct, поэтому я в основном не могу привести указатель void на структуру внутри функции и 2. параметр функции должен быть указателем void.
Это «настоящая» программа, которую я использую, но она не работает по какой-то причине.
struct test_struct {
int test_int;
char test_char;
};
struct test_struct t_struct1;
struct test_struct t_struct2;
void do_something_with_struct(void *p){
void* temp = (void*)&t_struct2;
p = temp;
}
int main(void) {
t_struct2.test_char = 'b';
t_struct2.test_int = 2;
do_something_with_struct((void*)&t_struct1);
// I want the values of t_struc1 to be the same as t_struct2 (so 2 and 'b'),
// but they aren't. Instead t_struct1 is is filled with random/default values.
while (1);
}
Как я уже говорил выше, программа не работает. Есть ли у кого-нибудь решение / мысль, которая заставит мою программу работать.
Заранее спасибо,
Арджон