#navi(contents-page-name): No such page: メモリ

動的にメモリを取得する・malloc

malloc関数を使用することにより指定したサイズ(バイト)のメモリを取得することができます。
以下にC言語のサンプルソースと実行例を記します。

c-top.html is not found or not readable.

関連記事

malloc書式など

malloc関数の書式などを以下に記します。

mallocのCサンプルコード

以下にmallocを使ったCサンプルコードを記します。
サンプルコードでは、文字列HELLO WORLD!(改行)と同じメモリサイズをmallocで取得しています。
取得したメモリにコピー後、tolower関数で小文字に変換しています。
表示後、free関数にてmallocで取得したメモリを解放しています。

&ref(): File not found: "malloc.c" at page "メモリ/動的にメモリを取得する・malloc"; (改行コードLF)

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


int main(void)
{
    char *src = "HELLO WORLD!\n";
    char *p = NULL;
    int i;

    p = malloc(strlen(src)+1);
    if (p == NULL) {
        perror("malloc() error!");
        exit(EXIT_FAILURE);
    }
    strcpy(p,src);
    for (i=0; i<strlen(p); i++) {
        p[i] = (char)tolower(p[i]);
    }

    printf("%s", src);
    printf("%s", p);

    if (p != NULL) {
        free(p);
        p = NULL;
    }

    return 0;
}

上記Cサンプルコードをコンパイルし実行した結果です。

$ gcc malloc.c -o malloc
$ ./malloc
HELLO WORLD!
hello world!

mallocで+1している理由は、文字列の終端のNULLが格納されるエリア(1バイト)を追加しています。
以上、mallocによる動的メモリの取得のサンプルコードでした。

c-btm.html is not found or not readable.

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS