C言語では、配列の長さを未知の場合、どのように表すのか。
C言語では、未知の配列の長さはポインタを使って表すことができます。具体的には、ポインタを配列の先頭アドレスとして使用し、ポインタを定義する際に具体的な配列の長さを指定しないことができます。
例えば、
int *arr; // 定义一个整型指针arr,表示未知长度的整型数组
int length; // 声明一个变量length,表示数组的长度
printf("请输入数组的长度:");
scanf("%d", &length);
arr = (int*)malloc(length * sizeof(int)); // 根据用户输入的长度动态分配内存
// 使用arr指针访问数组元素
for (int i = 0; i < length; i++) {
arr[i] = i + 1;
}
// 打印数组元素
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
free(arr); // 释放动态分配的内存
上記のコードでは、まず整数型のポインタarrが定義され、malloc関数を使ってlength個の整数変数のメモリ領域が動的に割り当てられ、その先頭アドレスがarrに代入されます。その後、arrポインタを使って配列要素にアクセスして操作することができます。最後に、free関数を使って動的に割り当てられたメモリ領域を解放します。