爱问知识人 爱问教育 医院库

把字节型指针转换成整型指针时,如何保证4字节对齐?

首页

把字节型指针转换成整型指针时,如何保证4字节对齐?


        

提交回答

全部答案

    2018-08-12 01:38:54
  •   字节型指针指向多少就是多少,没办法对齐的啊
    比如这样一块内存:
    0x12340000 41 42 43 44 45 46 47 48
    0x12340008 49 4a 4b 4c 4d 4e 4f 00
    若char* p = (char*) 0x12340000; 即p代表"ABCDEFGHIJKLMNO"
    现在令 char* p2 = p1 7; 即 0x12340007
    那么 int* p3 = (int*) p2; 的话,则使用 *p3 访问内存会造成效率低下或者出错(如果操作系统事先没有设置让它自动多次读取以获取非对齐数据的话,甚至会直接出错)
    那么你要做的事情是什么?要让p3的值是 0x12340004吗?
    int* p3 = (int*) ((unsigned int)p2 & ~3); //最后两位中所有的1都抹掉
    这样p3就是0x12340004了。
      

    厚***

    2018-08-12 01:38:54

类似问题

换一换

相关推荐

正在加载...
最新资料 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):