c语言地址偏移求助
我想要一个指针偏移0x100,需要怎么做比如指针p
p+0x100 ?? 指针是void *p gcc编译器没问题,其他编译器不知道,应该会有问题
#include <stdio.h>
int main(void)
{
void *p = 0;
p += 0x100;
printf("%p\n", p);
return 0;
}
这样应该可以了
#include <stdio.h>
int main(void)
{
void *p = 0;
p = (char *)p + 0x100;
printf("%p\n", p);
return 0;
} #include <stdio.h>
int main(void)
{
void *p = 0;
p += 0x100;
printf("%p\n", p);
return 0;
}
我试了一下,vs果然报错,我就记得vs好像不行,又巩固了一下我的记忆
本帖最后由 jackz007 于 2019-9-24 20:35 编辑
#include <stdio.h>
int main(void)
{
char c , * p ;
int k ;
for(k = 0 ; k < 1024 ; k ++) c = k % 256 ;
p = & c ; // p 指向 'A'
p += 0x100 ;
printf("\n\n") ;
for(k = 0 ; k < 4 ; k ++) printf("%c" , * p ++) ; // 打印 'ABCD'
printf("\n\n") ;
}
这个代码应该可以过所有的编译器。
指针定义成 char 型的应该是关键。
页:
[1]