Alright, got it:

void SetMyFunction( void* newfunc )
{
myFunc = (function*)newfunc;
}

The problem was using the same name for myFunc and the default definition. To get around this I just say:
void myFunc( myStruct* ptrStruct );

and

void defaultFunc( myStruct* ptrStruct );
{
diag("\nDefault function called!");
}

then in main:

myFunc = defaultFunc

Then I'm able to set myFunc to myDesiredFunc later on.

Hope this helps someone in the future! Cheers!