c语言中怎么求数组长度
时间: 2024-11-25 21:16:55 浏览: 29
在C语言中,如果你有一个动态数组(通过`malloc`或`calloc`分配的内存),你需要直接访问存储该数组的变量(通常是`size_t`类型的`length`或`num_elements`)来获取其长度。这个长度通常是在创建数组时作为函数返回值传给你的,例如`malloc(size)`会返回指向新分配内存的指针,同时传递给你的`size`就是数组的长度。
对于固定大小的静态数组,它的长度是编译时确定的,你可以直接通过数组名计算元素个数,比如`sizeof(arr) / sizeof(arr[0])`,这将给出数组可以容纳的元素数量。
这里是一段示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int* create_array(int size) {
int* arr = (int*) malloc(size * sizeof(int)); // 分配内存
return arr;
}
void get_array_length(int* arr) {
int length = sizeof(arr) / sizeof(*arr); // 获取数组长度
printf("Array length is %d\n", length);
free(arr); // 释放内存
}
int main() {
int size;
printf("Enter the array size: ");
scanf("%d", &size);
int* my_arr = create_array(size);
get_array_length(my_arr);
return 0;
}
```
阅读全文