cのメモリアロケーション
Cコンパイラにメモリアロケーションの図書館がある、malloc.h.の記憶でmalloc機能を使用して予約があり、住所にポインターを戻す定義される。 それは1つの変数、バイトで必要な記憶のサイズを取る。
次の例はひものためのスペースを、「こんにちは世界」割振ったものだ。
ptr = (char *)malloc(strlen("Hello world") + 1);
余分1バイトはひもの終了の特性、「\ 0」を考慮に入れるように要求される。 (木炭*)鋳造物と呼ばれ、木炭があるために帰りのタイプを強制する*。
データタイプに異なったサイズがある、およびmallocはバイトのスペースを戻すので、割振るためにサイズを指定するときsizeofオペレータを使用する可搬性の理由のための好ましい習慣である。
次の例は文字配列の緩衝にひもを読込み、次に可変的な呼ばれた「ptr」におよびコピーそれ必要な記憶の厳密な量を割振る。
#include <string.h>
#include <malloc.h>
int main()
{
char *ptr, buffer[80];
printf("Enter a string: ");
gets(buffer);
ptr = (char *)malloc((strlen(buffer) + 1) *
sizeof(char));
strcpy(ptr, buffer);
printf("You entered: %s\n", ptr);
return 0;
}
プログラムの出力は次の通りある:
Enter a string: India is the best
You entered: India is the best |
|