数组有Getsize()和Setsize()方法吗?

来源:百度知道 编辑:UC知道 时间:2024/06/12 21:19:37
如果没有 为什么没有

可以自己写。
数组 Setsize, 相当于动态分配数组大小
例如 数组 a:
float *a;
int A_de_DaXiao;
int i;
...
printf("Enter a ShuZu de DaXiao\n");
scanf("%d",&A_de_DaXiao);
a = (float *) malloc( A_de_DaXiao * sizeof(float));
// 下面可以用a[i]了
for (i=0;i<A_de_DaXiao;i++) a[i]= 100.0 * i;

Getsize, 用 sizeof 测定
double b[10];
int b_de_DaXiao;
int b_de_DaXiao_byte;
b_de_DaXiao = sizeof(b);
// 字节数
b_de_DaXiao_byte = sizeof(b) * sizeof(double);

数组,是连续的内存空间,除了他们有编号,你完全可以看作他们是完全不同的变量,没有支持他们的方法、函数
不过你可以用sizeof(a)这样来试试看,会返回a占用的空间,然后再结合a的类型,算一下每个元素应该占用多少,最后除一下得到数组长度
象下面的例子:
int a[10];
printf(“%d”,sizeof(a));
输出结果是20,而int型在内存占2字节,所以a的长度是10
set的话没有办法,c是不支持变长数组的,所有数组要在声明的时候声明长度

不清楚,没见过,不过好像不同的库函数包含的函数不同,有的版本有

C/C++里数组没有长度相关的函数, C/C++里的数组只是一个连续的存储区域,不像类或结构一样有成员函数.