一个关于空间分配的问题# Programming - 葵花宝典
f*l
1 楼
我被面试问到的。要求实现一个自己的空间分配,释放函数,使用c的malloc,free。
要求返回地址必须是16的倍数。
我的方法是每次多分配16个字节,这样总有一个是16的倍数。然后返回16倍数的地址。
然后保存一个全局的映射《返回地址,实际地址》。
对方似乎不满意。说为什么要返回16倍数的地址,是因为为了提高效率,每次寻址空间
释放都快。我的方法虽然实现了功能,但是既没有提高效率,又浪费了空间。
我曾想过自己分配一个大空间,然后自己管理,但似乎太过于复杂,而且内存碎片的管
理超出我的能力了。
不知各位有没有好的方法?
要求返回地址必须是16的倍数。
我的方法是每次多分配16个字节,这样总有一个是16的倍数。然后返回16倍数的地址。
然后保存一个全局的映射《返回地址,实际地址》。
对方似乎不满意。说为什么要返回16倍数的地址,是因为为了提高效率,每次寻址空间
释放都快。我的方法虽然实现了功能,但是既没有提高效率,又浪费了空间。
我曾想过自己分配一个大空间,然后自己管理,但似乎太过于复杂,而且内存碎片的管
理超出我的能力了。
不知各位有没有好的方法?