у меня есть следующий код:
void print(const char* str){
system_call(4,1,str,strlen(str)); }
void foo2(void){ print("goo \n");}
void buz(void){ ...}
int main(){
char buf[256];
void (*func_ptr)(void)=(void(*)(void))buf;
memcpy(buf,foo2, ((void*)buz)-((void*)foo2));
func_ptr();
return 0;
}
вопрос в том, почему этот код упадет?
ответ был, что-то о вызове функции не через указатель относится к относительному адресу, а я не смог понять, что здесь не так? какая строка проблемная?
спасибо за вашу помощь