请教各位,这串代码在x86中打印出20000000,但在x64中却报错了?为什么呢
#include
int main(void)
{
int a[4] = { 1,2,3,4 };
int* ptr2 = (int*)((int)a + 1);
printf("%x",*ptr2);
return 0;
}
改成这样的试试
#include <stdio.h>
int main()
{
int a[4] = {1, 2, 3, 4};
int *ptr2 = (int*)((long)a + 1);
printf("%x\n", *ptr2);
return 0;
}