【发布时间】:2014-11-21 13:16:38
【问题描述】:
我尝试重新定义malloc(),以便在不修改代码的情况下使用自定义分配器。为什么下面的代码不起作用?使用#define 是唯一的解决方案吗?
void *(*malloc_ptr)(size_t) = malloc;
*malloc_ptr = my_malloc;
【问题讨论】:
-
malloc不是函数指针,而是函数。它可以衰减为函数指针。 -
@Cyber:嗯。为什么要删除c++???
-
@Deduplicator 因为虽然这是有效的 C++ 代码,但这本质上只是一个 C 问题。来自 C++ 标签:“C++ 是一种基于 C 的通用编程语言。使用此标签可以解决有关使用 C++ 编译器编译的代码的问题,无论代码在 C、C#、Objective-C 中是否有效和其他基于 C 的编程语言。"
-
@Cyber:你从哪里知道他在使用 C 编译器?或者两者都不是?
-
“分配器”一词在 c++ 上下文中令人困惑。我猜它与 c++ 分配器无关。
标签: c++ c pointers function-pointers