Possible Duplicate:
What is the best solution to replace a new memory allocator in an existing code?
我正在用C语言编写一个库。我想知道是否有一种方法可以将我的库调用进行的每个malloc()
转移到我提供的另一个“增强的” testmalloc()
函数中,而无需(显着)修改我的库。这个问题的灵感来自Kernighan和Pike的“编程实践”的p158,他们说
编写一个存储分配器的版本,该版本有意地提前失败,以测试您的代码以从内存不足错误中恢复。
我可以提供包装器mymalloc()
并将其专门用于我的库中。我怀疑在链接过程中有必要使用这种自由度来避免多个符号定义。
最佳答案
除了Yossarian的答案外,您还可以使用malloc钩子,该钩子至少为GNU C library定义。
关于c - 替换C中的函数定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1867271/