<分区>
我目前正在重新编写仅供 Linux 使用的 C/C++ malloc
函数。该练习的挑战之一是使我的函数尽可能接近原始的 malloc
。
我通常使用 Valgrind 检查我的 mallocs 是否被正确允许和释放,但我不知道 Valgrind 是否可以选择其他形式的内存分配,如果可以,是哪些?
第二个问题:假设 Valgrind 不选择其他形式的内存分配,我还能使用什么来检查我的函数是否按预期工作?
<分区>
我目前正在重新编写仅供 Linux 使用的 C/C++ malloc
函数。该练习的挑战之一是使我的函数尽可能接近原始的 malloc
。
我通常使用 Valgrind 检查我的 mallocs 是否被正确允许和释放,但我不知道 Valgrind 是否可以选择其他形式的内存分配,如果可以,是哪些?
第二个问题:假设 Valgrind 不选择其他形式的内存分配,我还能使用什么来检查我的函数是否按预期工作?
最佳答案
Valgrind 假定 malloc
按预期工作以管理内存分配。如果您的目标是制作自己的 malloc
实现,则不能使用 Valgrind 对其进行调试。
这是本练习的挑战之一:您必须自己调试它。
如果您想检查您的函数是否按预期工作,请编写一个函数 show_alloc_mem
来转储您的内存并检查是否所有内容都按预期显示。
关于c - Valgrind 在给出分配数量时究竟考虑了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35087372/