繁体   English   中英

取消引用功能指针以交换功能

[英]Dereferencing a Function Pointer to Swap the Function

我尝试重新定义malloc()以便使用自定义分配器而不修改代码。 为什么以下代码不起作用? 使用#define是唯一剩下的解决方案吗?

void *(*malloc_ptr)(size_t) = malloc;
*malloc_ptr = my_malloc;

为了可靠地替换内存分配库,请使用LD_PRELOAD并将其传递给您自己的malloc和free实现。

显然,您可以创建自己的名为malloc_ptr的变量,并在所有函数中使用该变量,但是请注意,其他库函数将调用标准malloc

没有用于功能指示符的赋值运算符。

如果要将一个功能指针分配给另一功能指针,则应编写

malloc_ptr = my_malloc;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM