C言語のmemalign関数の使用方法は何ですか

C言語のmemalign関数は、メモリを確保し、確保されたメモリのポインタを返す関数です。

この関数は以下のように定義されます。

void *memalign(size_t alignment, size_t size);

パラメータの説明:

  1. alignment: メモリの割り当て方法です。通常2のべき乗で、sizeof(void*)と同じ、またはそれより大きい値です。条件を満たさなければエラーが発生します。
  2. サイズ: 割り当てするメモリサイズを示す。

戻り値: メモリの割り当てに成功した場合、割り当てられた新しいメモリへのポインタを返します。割り当てに失敗した場合、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で解放しないとメモリリークになる点に注意

bannerAds