有一个名为_aligned_malloc的函数可以分配对齐的内存。 calloc是否有类似的功能?我想对齐并将其初始化为零。我正在使用Visual Studio 2010

最佳答案

不,但是您可以轻松地自己滚动:

void *_aligned_calloc(size_t nelem, size_t elsize, size_t alignment)
{
    // Watch out for overflow
    if(elsize == 0 || nelem >= SIZE_T_MAX/elsize)
        return NULL;

    size_t size = nelem * elsize;
    void *memory = _aligned_malloc(size, alignment);
    if(memory != NULL)
        memset(memory, 0, size);
    return memory;
}

关于c - 对齐的calloc,视觉工作室,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6352206/

10-11 21:08