由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一道题 实现malloc
相关主题
感觉G家面试还是和面的组工作内容略微相关的M面完焦急等待中。。。。。大家看看我是个什么水平?
FB第二轮电面记录上面经,明天G onsite, 求祝福
bloomberg onsite求助:面试题
报个电面的面经和据信吧, 求安慰Interview questions, Bloomberg
请教个C++编程思路大家新年好。 请教一个 c interview question (转载)
A malloc/free question using C/C++问一个placement new 和 operator new的问题
在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)问个malloc问题
我最喜欢问的问题,怎样检查out of memorygoogle 2nd onsite?
相关话题的讨论汇总
话题: malloc话题: block话题: 实现话题: void话题: 空闲
进入JobHunting版参与讨论
1 (共1页)
p****U
发帖数: 109
1
实现malloc咋实现阿。。面试遇到傻傻的站着不知道咋写。 面试官也不太nice 不给提
示, 东欧人也口音非常重, 交流也成问题。
implement:
void * malloc(size_t len);
by calling void *requestPages(int n) //n is number of pages
freePages(void *ptr); // assume each page is
1k.
n****e
发帖数: 678
2
同问!
f*****d
发帖数: 209
3
就是自己做内存管理,你要维护一个未分配内存和已分配的内存的表。
malloc ==> 未分配 -> 已分配
free ==> 已分配 -> 未分配

is

【在 p****U 的大作中提到】
: 实现malloc咋实现阿。。面试遇到傻傻的站着不知道咋写。 面试官也不太nice 不给提
: 示, 东欧人也口音非常重, 交流也成问题。
: implement:
: void * malloc(size_t len);
: by calling void *requestPages(int n) //n is number of pages
: freePages(void *ptr); // assume each page is
: 1k.

y****1
发帖数: 58
4
http://www.ibm.com/developerworks/library/l-memory/
这个实现,没有用链表。只用了3个全局变量。
面试时,写这个行不行啊?
谢谢 大家探讨啊。。。

【在 f*****d 的大作中提到】
: 就是自己做内存管理,你要维护一个未分配内存和已分配的内存的表。
: malloc ==> 未分配 -> 已分配
: free ==> 已分配 -> 未分配
:
: is

s**x
发帖数: 7506
5

我怎么感觉那个 code 有问题,initialize 的时候,memory usable is 0? that does
sound right. not sure what I am missing.

【在 y****1 的大作中提到】
: http://www.ibm.com/developerworks/library/l-memory/
: 这个实现,没有用链表。只用了3个全局变量。
: 面试时,写这个行不行啊?
: 谢谢 大家探讨啊。。。

s*****r
发帖数: 43070
6
核心就是管理一堆从大到小的memory block
这种要用C的工作不要也罢,失了业不好找下家
e*******s
发帖数: 1979
7
http://stackoverflow.com/questions/5422061/malloc-implementatio

is

【在 p****U 的大作中提到】
: 实现malloc咋实现阿。。面试遇到傻傻的站着不知道咋写。 面试官也不太nice 不给提
: 示, 东欧人也口音非常重, 交流也成问题。
: implement:
: void * malloc(size_t len);
: by calling void *requestPages(int n) //n is number of pages
: freePages(void *ptr); // assume each page is
: 1k.

q***h
发帖数: 13
8
CSAPP 第九章有个简单实现,如果对这块不熟悉的话,个人觉得是一个很好的参考。
另外也可参考 STL 的 allocator 实现。
p****U
发帖数: 109
9
thanks, 请问 caspp全称? google一下没找到。

【在 q***h 的大作中提到】
: CSAPP 第九章有个简单实现,如果对这块不熟悉的话,个人觉得是一个很好的参考。
: 另外也可参考 STL 的 allocator 实现。

q***h
发帖数: 13
10
Should be CSAPP, 深入理解计算机系统, sorry for the typo:)

【在 p****U 的大作中提到】
: thanks, 请问 caspp全称? google一下没找到。
相关主题
A malloc/free question using C/C++M面完焦急等待中。。。。。大家看看我是个什么水平?
在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)上面经,明天G onsite, 求祝福
我最喜欢问的问题,怎样检查out of memory求助:面试题
进入JobHunting版参与讨论
h**o
发帖数: 548
11
c programming language 2 Edition P164-167.
有代码及详解。
主要是把所有空闲block 用 single link list 穿起来。每个node of list 包括:{
此空闲block的总size,
指向下一个空闲block的指针,
这个空闲block本身(根据此node的指针和此空闲block的总size可以推算出这个block
是那一段)
}
malloc就是把某个空闲block从靠近尾部开始截断。截掉的那段就是想分的长度,分给
malloc的caller, 然后把这个空闲block的总size减去截掉的size.
free 就是把分给malloc的那段在link list找到适当位置重新糊上去。

is

【在 p****U 的大作中提到】
: 实现malloc咋实现阿。。面试遇到傻傻的站着不知道咋写。 面试官也不太nice 不给提
: 示, 东欧人也口音非常重, 交流也成问题。
: implement:
: void * malloc(size_t len);
: by calling void *requestPages(int n) //n is number of pages
: freePages(void *ptr); // assume each page is
: 1k.

h**o
发帖数: 548
12
why did you mention requestPage?

is

【在 p****U 的大作中提到】
: 实现malloc咋实现阿。。面试遇到傻傻的站着不知道咋写。 面试官也不太nice 不给提
: 示, 东欧人也口音非常重, 交流也成问题。
: implement:
: void * malloc(size_t len);
: by calling void *requestPages(int n) //n is number of pages
: freePages(void *ptr); // assume each page is
: 1k.

g*********e
发帖数: 14401
13
requestPage就是当前的free block都不够大了,再request一个新的。
不过如果malloc要求的空间大于1k,就挺难弄的。
这题还可以继续考free block如何管理,从而使得fragmentation尽量减少,以及free
的内存如何粘贴到已有的block里。问这种题的人脑子都不好使,铁了心搞你。
d**********x
发帖数: 4083
14
i guess the simplest impl should be the one in K&R...

【在 q***h 的大作中提到】
: CSAPP 第九章有个简单实现,如果对这块不熟悉的话,个人觉得是一个很好的参考。
: 另外也可参考 STL 的 allocator 实现。

s***e
发帖数: 403
15
More Effective C++里面有一个内存池的例子可以参考。
1 (共1页)
进入JobHunting版参与讨论
相关主题
google 2nd onsite?请教个C++编程思路
问一个C的简单问题A malloc/free question using C/C++
merge两个有序数组在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)
BB intern onsite灰溜溜地回来了(附面经攒rp)我最喜欢问的问题,怎样检查out of memory
感觉G家面试还是和面的组工作内容略微相关的M面完焦急等待中。。。。。大家看看我是个什么水平?
FB第二轮电面记录上面经,明天G onsite, 求祝福
bloomberg onsite求助:面试题
报个电面的面经和据信吧, 求安慰Interview questions, Bloomberg
相关话题的讨论汇总
话题: malloc话题: block话题: 实现话题: void话题: 空闲