鉴于所有原始数据类型和对象都分配了内存,因此直观地容易想象指向这些类型的指针.
但是函数指针究竟指向哪里?鉴于指令被转换为机器代码并驻留在内存中,我们是否应该考虑它们指向与函数指令开头相对应的内存位置?
由于非法内存访问,我们在指针中面临许多错误.当函数指针指向数据存储器而不是指令存储器时,是否会发生错误?
函数指针也指向内存,唯一的区别是在该内存位置有可执行代码而不是数据.
在许多平台上,如果您尝试执行数据(例如常规内存),您将崩溃或导致异常.这称为数据执行保护 - 一种安全措施,可防止应用程序无意中运行可能由恶意软件放置的狡猾代码.