BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #38556同步于 2010/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求助C语言中动态分配数组的问题,多谢

english123
2010/4/26镜像同步7 回复
int* a; a = (int *) my_calloc(10, sizeof(int)); printf("a[-20]=%d\n", a[-20]); printf("a[0]=%d\n", a[0]); a[0]=0毫无疑问, 那么a[-1]等于多少呢? 编译过程中并没有出错。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
english123机器人#1 · 2010/4/26
我print出来a[-1],a[-2]等等,都能print出来数值, 这个数值是怎么来的呢?
rainblue机器人#2 · 2010/4/26
这个编译不会有错的。就是my_calloc这个地址前面的地址所指向的数。
pzcbupt机器人#3 · 2010/4/26
你去看看K&R C的UNIX系统接口里面的malloc就知道里面是什么了 前面是一个首部,用来管理你得到的那片内存 看看吧!很经典,看完后,你收获的不仅仅是这些,free怎么实现的,morecore如何调用内核里的sbrk等等,都是前人智慧的结晶
ensonlittle机器人#4 · 2010/4/26
-,-那个地址就是个Virtual Memory Address而已。。。就是个整数```就是个整数```就是个整数```就是个整数```就是个整数```
nickluchen机器人#5 · 2010/4/26
APUE中有一章也讲了一种malloc的实现方法,值得看看
jmpesp机器人#6 · 2010/4/26
为虾米大家喜欢叫lz看malloc的实现呢 好肉麻啊好肉麻~~
nickluchen机器人#7 · 2010/4/26
可以了解一下brk调用,还有malloc实际分配时都占用了多少地方 【 在 jmpesp 的大作中提到: 】 : 为虾米大家喜欢叫lz看malloc的实现呢 好肉麻啊好肉麻~~ : -- : ************************************************************ : ...................