У меня есть два файла main.c и foo.c, я пытаюсь скопировать массив функций из одного файла в другой.
Моя проблема: Копируется только первый элемент.
Это мой код:
foo.c:
void foo1();
void foo2();
void foo3();
void foo4();
void foo5();
void foo6();
void foo7();
void (*myFuncs[7])() = {
foo1,
foo2,
foo3,
foo4,
foo5,
foo6,
foo7
};
void* getMyFuncs(){
return myFuncs;
}
main.c:
void (*things[7])();
void main(){
memcpy(things, getMyFuncs(), sizeof(getMyFuncs()));
}
После запуска в режиме отладки я проверил мой массив вещи и скопировал только указатель foo1 .
Итак, мой вывод:
void (*things[7])() = {
foo1 (hex address here),
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
};
То, что я ожидал:
void (*things[7])() = {
foo1 (hex address here),
foo2 (hex address here),
foo3 (hex address here),
foo4 (hex address here),
foo5 (hex address here),
foo6 (hex address here),
foo7 (hex address here)
};
Почему копируется только первый элемент?
Спасибо