C言語で初期値を代入しない変数の定義方法
C言語では変数定義時に初期値を持たない変数を宣言する方法が2つあります。
- 変数を宣言時に初期化しない
int num; // 只声明了一个整型变量,但没有赋初值
スタック上で定義されたローカル変数はランダムな初期値を持ち、グローバル変数は初期値が指定されなければ0に自動初期化されるため、このメソッドで定義される変数の初期値は未定義で、その値は変数が置かれる記憶域の初期値に依存します。
- malloc関数を使用してメモリを動的に割り当てる。
int *ptr; // 声明一个整型指针变量
ptr = (int *)malloc(sizeof(int)); // 动态分配内存
malloc関数を使用して整数のメモリ領域を動的に割り当てたが、初期化されていません。使用後は、free関数を使用してメモリ領域を解放する必要があることに注意してください:
free(ptr); // 释放内存空间
初期化されていない変数は値が未確定なので、このような方法で変数を定義する場合には、使用する前に代入する必要があります。