html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

C语言编程技巧:C语言“徒手”写内存_编程语言综合

[ ] 已经帮助:人解决问题

  在application程序猿的眼中,C语言写内存的方法,千篇一律,如下:LMGHTML5中文学习网 - HTML5先行者学习网

  struct mystr * ptr;LMGHTML5中文学习网 - HTML5先行者学习网

  ptr = malloc(sizeof(*ptr));LMGHTML5中文学习网 - HTML5先行者学习网

  ptr->fildA='abc';LMGHTML5中文学习网 - HTML5先行者学习网

  ptr->fildB=89;LMGHTML5中文学习网 - HTML5先行者学习网

  但是,如果是系统程序,没有malloc,甚至需要你自己设计malloc,如何来写内存呢?LMGHTML5中文学习网 - HTML5先行者学习网

  下边为大家展示一种技术,此技术比较血腥和暴力,少儿不宜。LMGHTML5中文学习网 - HTML5先行者学习网

  满了18岁的小朋友可以继续观看。LMGHTML5中文学习网 - HTML5先行者学习网

  1 #includeLMGHTML5中文学习网 - HTML5先行者学习网

  2 #includeLMGHTML5中文学习网 - HTML5先行者学习网

  3LMGHTML5中文学习网 - HTML5先行者学习网

  4 struct str1 {LMGHTML5中文学习网 - HTML5先行者学习网

  5 int i;LMGHTML5中文学习网 - HTML5先行者学习网

  6 char j;LMGHTML5中文学习网 - HTML5先行者学习网

  7 };LMGHTML5中文学习网 - HTML5先行者学习网

  8LMGHTML5中文学习网 - HTML5先行者学习网

  9 int main(){LMGHTML5中文学习网 - HTML5先行者学习网

  10 struct str1 * ptr1;LMGHTML5中文学习网 - HTML5先行者学习网

  11 ptr1 = malloc(sizeof(*ptr1));LMGHTML5中文学习网 - HTML5先行者学习网

  12 *((int*)ptr1)=23;LMGHTML5中文学习网 - HTML5先行者学习网

  13 *((char*)((int*)ptr1 + 1))='a';LMGHTML5中文学习网 - HTML5先行者学习网

  14LMGHTML5中文学习网 - HTML5先行者学习网

  15 printf("now ptr1->i is:%dn",ptr1->i);LMGHTML5中文学习网 - HTML5先行者学习网

  16 printf("now ptr1->j is:%dn",ptr1->j);LMGHTML5中文学习网 - HTML5先行者学习网

  17LMGHTML5中文学习网 - HTML5先行者学习网

  18 return 0;LMGHTML5中文学习网 - HTML5先行者学习网

  19 }LMGHTML5中文学习网 - HTML5先行者学习网

  胆子大一点的童鞋猜一猜呢,ptr1->i是多少呢?LMGHTML5中文学习网 - HTML5先行者学习网

  没错,输出是这样的:LMGHTML5中文学习网 - HTML5先行者学习网

  [root@localhost ~]# ./memwriteLMGHTML5中文学习网 - HTML5先行者学习网

  now ptr1->i is:23LMGHTML5中文学习网 - HTML5先行者学习网

  那么,ptr1->j是多少呢?LMGHTML5中文学习网 - HTML5先行者学习网

  如果知道答案,那么,他为什么会是这个结果呢?LMGHTML5中文学习网 - HTML5先行者学习网

  如果你还没有看懂,加我的QQ号吧。LMGHTML5中文学习网 - HTML5先行者学习网

  如果你理解了本hack的核心原理,再去阅读Linux内核的分页管理、swap技术什么的,就易如反掌了。LMGHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助