在GNU C Library Reference Manual中,有一个示例程序(p.65),但我不知道这三个句子__malloc_hook = old_malloc_hook;
old_malloc_hook = __malloc_hook;
__malloc_hook = my_malloc_hook;
是什么
意思.特别是第二个,谁能为我解释一下?谢谢.
static void *
my_malloc_hook (size_t size, const void *caller)
{
void *result;
/* Restore all old hooks */
__malloc_hook = old_malloc_hook;
__free_hook = old_free_hook;
/* Call recursively */
result = malloc (size);
/* Save underlying hooks */
old_malloc_hook = __malloc_hook;
old_free_hook = __free_hook;
/* printf might call malloc, so protect it too. */
printf ("malloc (%u) returns %p\n", (unsigned int) size, result); …Run Code Online (Sandbox Code Playgroud)