对齐的calloc,视觉工作室

问题描述

一个名为“ 0”的函数,可以分配对齐的内存。
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,size);
    return memory;
}