Anyone know why calling a function

void foo(MyStruct*)

like

struct MyStruct param;
void (*funcPtr)(void*) = (void (*)(void*)) foo; 
funcPtr(&param);

is undefined behavior? I.e. on what platform is this a problem?

I know THAT it is UB, just not why.