跪求一个很简单的C++指针问题
intv1;function(*(v1+8)+100);这里指的是,v1指针偏移8位以后的数据+100可是v1不是指针,v1是一个int类型那么传入function的参数...
int v1;
function ( * (v1 + 8 ) + 100 );
这里指的是, v1指针偏移8位以后的数据 + 100
可是 v1 不是指针, v1 是一个int类型
那么 传入function 的参数 是什么呢?
这是IDA编译出来的伪代码, 大家认为要怎么修改, 别人成功过!! 展开
function ( * (v1 + 8 ) + 100 );
这里指的是, v1指针偏移8位以后的数据 + 100
可是 v1 不是指针, v1 是一个int类型
那么 传入function 的参数 是什么呢?
这是IDA编译出来的伪代码, 大家认为要怎么修改, 别人成功过!! 展开
4个回答
展开全部
我记得你之前问过类似的指针问题。
其实指针的本身就是一个数值,所以将一个整数看做一个地址是完全没有问题的,这里面就是这样处理的,不过如果这个地址不在代码的可访问空间的范围,可能会造成运行错误。
我表示也没太理解你的意思,可方便把源码贴出来看看。
其实指针的本身就是一个数值,所以将一个整数看做一个地址是完全没有问题的,这里面就是这样处理的,不过如果这个地址不在代码的可访问空间的范围,可能会造成运行错误。
我表示也没太理解你的意思,可方便把源码贴出来看看。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
v1是一个变量,默认为0,与8计算后得到的值用指针指向它的地址,然后地址再偏移100个位置,所以里面应该传的是地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-02
展开全部
* (v1 + 8 ) 当v1是int类型的时候根本不可能编译通过……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询