博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
malloc函数
阅读量:4154 次
发布时间:2019-05-25

本文共 435 字,大约阅读时间需要 1 分钟。

#include 
#include
#include
typedef struct { char s[16];} PString;void main() { PString *p; int n = 8; p = (PString *) malloc(n * sizeof(PString)); int i = 0; for(; i < 16; i++) { p->s[i] = 'a' + i; } printf("%s", p->s); free(p);}

这段程序中分配得到8个PString结构的内存。奇怪的是,在gdb调试的时候即使是"p sizeof(*(p+5000))",还是会得到正确的数字,而且p *(p+5000)也可以访问。

在程序中即使添加"(p+10)->s[0] = 'a'"也是正确的,就是说可以访问超过分配得到的空间的内容。  为什么呢?

转载地址:http://idgti.baihongyu.com/

你可能感兴趣的文章
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
Observer模式
查看>>
高性能服务器设计
查看>>
性能扩展问题要趁早
查看>>
MySQL-数据库、数据表结构操作(SQL)
查看>>
OpenLDAP for Windows 安装手册(2.4.26版)
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>