一个内存指针p
如果想内存指针移动4096个字节,该怎么写?
*p=&p+4096?

解决方案 »

  1.   

    4096个字节?int *p = ...;
    p = (int *)((long)p + 4096);
      

  2.   

    一个指针也需要内存来存储其指向的内容的地址
    因而使用&p取得的是指针的地址不是指针里面指向的内容的地址
    “如果想内存指针移动4096个字节,该怎么写?
    *p=&p+4096?"
    既然要苛求4096个字节,那么说明p指向的应该是字节类型就是:
    BYTE *p;//BYTE 是定义在winnt.h下的一个类型表示一个字节
    然后p+=4096;就是p原先指向的内容的后4096个字节的内容了
    ls的不知道p指针的类型是不能这样做的
      

  3.   

    先转化成char* 类型的指针,再+1024;
    然后再转换回去。因为类型不一样,加某个数值不一定移动某个数值