How are strings stored in C language? C言語では、文字列はどのように格納されますか?
C言語では、文字列は文字配列または文字ポインタとして保存することができます。以下には、よく使われる2つの方法があります:
- 文字配列:文字列を格納するために、固定サイズの文字配列を宣言することができます。例えば、以下のように10文字を含む文字列配列を宣言することができます。
char str[11]; // 包括一个额外的字符来存储字符串的结束符'\0'
次に、この文字配列に文字列を格納するために文字列代入関数(strcpyなど)を使用できます。
strcpy(str, "Hello"); // 将字符串"Hello"复制到str数组中
文字列とその終了記号を収容するためには、文字配列のサイズが十分に大きい必要があります。
- 文字ポインター:文字列を格納するために文字ポインターを使用できます。例えば、文字ポインターを宣言し、十分なメモリを割り当てて文字列を格納することができます。
char *str;
str = malloc(6); // 分配6个字节的内存,用于存储字符串"Hello"
その後、文字列をこの文字型ポインタが指すメモリに保存するために、文字列代入関数(例:strcpy)を使用することができます。
strcpy(str, "Hello"); // 将字符串"Hello"复制到str指向的内存中
文字ポインターをもう使用しない場合には、割り当てられたメモリを解放することを忘れないでください。
free(str); // 释放str指向的内存
文字列を格納する際には、メモリの割り当てと解放に注意する必要があります。