【C言語】malloc関数を使って文字列を初期化する

この記事では、C言語のmalloc関数を使って文字列を初期化するプログラムの作成手順を解説します。

初心者の方でもわかりやすく、具体的なサンプルコードを交えて説明します。

目次から探す

malloc関数を使った文字列の初期化プログラムの作成手順

プログラムの概要

このプログラムは、malloc関数を使って文字列を動的にメモリ確保し、そのメモリ領域を使って文字列を初期化するものです。

動的メモリ確保を行うことで、必要なだけのメモリを確保することができます。

メモリの動的確保

まず、プログラム内で使用する文字列の長さに応じて、必要なだけのメモリを動的に確保します。

これには、C言語の標準ライブラリであるmalloc関数を使用します。

malloc関数は、指定したバイト数のメモリ領域を確保し、その先頭アドレスを返します。

char* str;
int length = 10; // 文字列の長さ
str = (char*)malloc(length * sizeof(char));

上記のコードでは、文字列の長さを10として、10バイト分のメモリ領域を確保しています。

確保したメモリ領域の先頭アドレスをstrポインタに格納しています。

文字列の初期化

次に、確保したメモリ領域を使って文字列を初期化します。

文字列を初期化するためには、strcpy関数を使用します。

strcpy関数は、指定した文字列を別の文字列にコピーする関数です。

strcpy(str, "Hello, World!");

上記のコードでは、Hello, World!という文字列を、strポインタが指すメモリ領域にコピーしています。

メモリの解放

プログラムの最後には、確保したメモリ領域を解放する必要があります。

これには、free関数を使用します。

free関数は、指定したメモリ領域を解放し、そのメモリを再利用可能な状態にします。

free(str);

上記のコードでは、strポインタが指すメモリ領域を解放しています。

完成したプログラム

以下に、上記の手順を組み合わせて作成したプログラムの一例を示します。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
    char* str;
    int length = 10; // 文字列の長さ
    str = (char*)malloc(length * sizeof(char));
    
    strcpy(str, "Hello, World!");
    
    printf("%s\n", str);
    
    free(str);
    
    return 0;
}

上記のプログラムでは、malloc関数を使って10 バイト分のメモリ領域を確保し、そのメモリ領域にHello, World!という文字列をコピーしています。

最後に、確保したメモリ領域を解放しています。

プログラムを実行すると、コンソールにHello, World!という文字列が表示されます。

目次から探す