C言語で配列が空かどうかを判定する方法は何ですか?
C言語では、配列が空かどうかを判定するには、以下の2つの方法を使うことができます。
- 配列の長さが0かどうかを判断する:配列の長さが0であるかどうかを判断することで、その配列が空であるかどうかを確認できます。例えば:
int arr[10];
if (sizeof(arr) / sizeof(arr[0]) == 0) {
printf("数组为空\n");
} else {
printf("数组不为空\n");
}
- 最初の要素のアドレスがNULLかどうかを判定することで、配列が空かどうかが分かります。例えば:
int arr[10];
if (arr == NULL) {
printf("数组为空\n");
} else {
printf("数组不为空\n");
}
上記の方法は、静的配列が空かどうかを判断するためのものであり、mallocやcalloc関数を使用して動的に割り当てられた配列には適用できません。動的配列の場合、ポインタを使用して空かどうかを判断することができます。例えば、
int *arr = malloc(sizeof(int) * 10);
if (arr == NULL) {
printf("数组为空\n");
} else {
printf("数组不为空\n");
}