Michael Mair said:
What do you mean?
1) function pointers not pointing to functions
2) accessing storage you do not "own" when using function
pointers
The function pointer could point to non-executable code, causing the machine
to refuse to load it into an instruction pointer register.
The function pointer could point to non-existent memory, causing an error
when the machine tries to fetch an instruction from the non-existent place.
The function pointer could point to garbage, causing random data to be
interpreted as instructions and executed. This will almost certainly lead to
a crash.
The function pointer to point to a function with a human introduced error in
it, which cause the illegal memory access. (This is the same a regular
memory access error).