读书人

请问C内存布局有关问题

发布时间: 2013-01-22 10:23:54 作者: rapoo

请教C内存布局问题
代码如下,先定义函数fun(),然后申明一个函数指针pfun:
void fun()
{
;
}

void (*pfun)();

int main()
{
pfun = fun; //将pfun赋值
}

debug 窗口:

name value
pfun 0x00401005 _fun
fun 0x0040d4b0 fun(void)
&pfun 0x00427e48
_fun 0x0040d4b0 fun(void)


我的问题是,pfun既然指向fun,为什么fun的地址和pfun指向的地址不一样(一个是0x0040d4b0 ,一个是0x00401005)。
而且_fun的地址的确是0x0040d4b,为什么pfun指向0x00401005也可以取到_fun? 函数指针C内存布局
[解决办法]

引用:
引用:引用:引用:引用:引用:引用:pfun里存放的是fun的地址

fun的地址就是 0x0040d4b0,照你的说法,pfun存的应该是……

楼主你就坑我吧,我以为是输出的地址不一样呢! 你不砸=早把这图贴上来

读书人网 >C语言

热点推荐