温馨提示×

C语言memalign函数的用法是什么

小亿
209
2023-11-29 23:14:25
栏目: 编程语言

C语言中的memalign函数用于分配内存并返回一个指向分配内存的指针。

该函数的定义如下:

void *memalign(size_t alignment, size_t size);

参数说明:

  • alignment:表示所分配内存的对齐方式。通常是2的幂次,且大于等于sizeof(void*)。如果不满足要求,会返回错误。
  • size:表示要分配的内存大小。

返回值:如果分配成功,则返回指向新分配内存的指针;如果分配失败,则返回NULL。

使用示例:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr;
    ptr = (int *)memalign(16, sizeof(int) * 10);
    if(ptr == NULL) {
        printf("内存分配失败\n");
        return 1;
    }
    printf("内存分配成功\n");
    free(ptr);
    return 0;
}

上述示例中,使用memalign函数分配了一个大小为10个int元素大小的内存空间,并要求内存按16字节对齐。如果分配成功,则输出"内存分配成功",并最后使用free函数释放内存。

需要注意的是,使用memalign函数分配的内存,必须使用free函数进行释放,否则会导致内存泄漏。

0