内存方面的测试题
来源:互联网 发布:中世纪2原版优化9各国 编辑:程序博客网 时间:2024/05/22 10:39
int main()
{
int a[5]={1,2,3,4,5};
int *ptr1=(int *)(&a+1);
int *ptr2=(int *)((int )a+1);
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}
C/C++ code
#include <stdio.h>
int main(void)
{
int a[5]={1,2,3,4,5};
//假设a的地址为0x80000000,sizeof(int)=4
//假设是little-endian,则0x80000000-0x80000013的数据为:
// addr: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
// data: 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00
int *ptr1=(int *)(&a+1); //ptr1 = 0x80000000+20=0x80000014
int *ptr2=(int *)((int )a+1); //ptr2 = 0x80000000+1 = 0x80000001
//&ptr1[-1] = 0x80000014-4 = 0x80000010,so ptr1[-1] = *(int *)0x80000010 = 5
//*ptr2 = *(int *)0x80000001 = 0x02000000
printf("%x,%x",ptr1[-1],*ptr2);
return 0;
}
http://topic.csdn.net/u/20071127/17/d521c586-bc0a-4c31-bcfe-5d90f0ed7c5e.html
所以在little-endian,32位机器上,输出是5,2000000
big-endian,32位机器上,输出是5,100
不知道结果对不对 ,但是分析不错
- 内存方面的测试题
- 测试的几个方面
- 内存方面的使用规范
- 内存方面的调试技巧
- java内存方面的问题
- JavaScriptCore 的内存管理方面
- VS2010测试方面的文章
- 网络错误方面的测试
- VS2010测试方面的文章
- 软件测试方面的总结
- H5测试需要关注的测试方面
- 内存方面
- ios转载的内存方面的知识
- 一些典型的测试方面的误解
- 一些典型的测试方面的误解
- 测试方面的一些自己的总结
- cocos关于内存方面的文章
- Mysql IO 内存方面的优化
- Amazon 的 Dynamo 架构
- Digg 网站架构
- YouTube 的架构扩展
- Internet Archive 的海量存储浅析
- web拖动Drag&Drop原理
- 内存方面的测试题
- Craigslist 的数据库架构
- 开发工程师的面试
- 开发工程师的面试
- 从选择 Java 框架谈谈技术人员的"舒适区"
- 匈牙利命名法
- Oracle 密码破解易如反掌 ?Oracle 密码破解易如反掌 ?
- 如何比较两个 Schema 的异同
- Google Adsense: 在自己的网站中显示搜索结果