Linux _在UNIX中找不到recalloc

Linux _在UNIX中找不到recalloc,linux,unix,malloc,realloc,Linux,Unix,Malloc,Realloc,在UNIX中找不到_recalloc函数(未定义)。使用标题: #include <stdlib.h> #include <malloc.h> 它正确吗?: 手册页将告诉您函数定义的来源(ANSI C、POSIX、SysV、BSD等) malloc()。如果你想把它归零,为什么不干脆free然后callocrealloc只是复制一些东西,然后将其归零。我不确定_recalloc的内部实现,所以我请求帮助。注意:不能添加到无效指针。(而且你的函数是非常错误的,因为它(重新

在UNIX中找不到_recalloc函数(未定义)。使用标题:

#include <stdlib.h>
#include <malloc.h>
它正确吗?

手册页将告诉您函数定义的来源(ANSI C、POSIX、SysV、BSD等)


malloc()。如果你想把它归零,为什么不干脆
free
然后
calloc
realloc
只是复制一些东西,然后将其归零。我不确定_recalloc的内部实现,所以我请求帮助。注意:不能添加到无效指针。(而且你的函数是非常错误的,因为它(重新)没有分配任何东西,内存大小是错误的,并且减法
(\u size-\u count)
也很难闻)@wildplasser,那么如何实现它呢?简单回答:你不能。你需要知道旧的尺码,但你不知道。real realloc()知道旧的大小,因为它可以检查内存块(由malloc/free/calloc/realloc维护)的内部(隐藏)内容
inline void* _recalloc(void* _Memory, _In_ size_t _Count, _In_ size_t _Size)
{
    return memset(_Memory + _Count, 0, sizeof(_Memory) * (_Size - _Count));
}