为数组分配内存和分配内存之间的区别

时间:2015-12-15 20:58:16

标签: c memory-management

kmallockmalloc_array之间是否存在有意义的差异?

我的印象是记忆是记忆,但正如here所描述的那样,似乎有些不同。

  

kmalloc - 分配内存

     

kmalloc_array - 为数组分配内存。

他们只是两种不同的方式来完成同样的事情吗?

1 个答案:

答案 0 :(得分:4)

来自kernel-source(slab.h)

/**
* kmalloc_array - allocate memory for an array.
* @n: number of elements.
* @size: element size.
* @flags: the type of memory to allocate (see kmalloc).
*/
static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
{
      if (size != 0 && n > SIZE_MAX / size)
             return NULL;
      return __kmalloc(n * size, flags);
}

我想知道谁需要那个;))