c语言中怎么接收一的数组,在写程序前不知道这数组的大小,并且后面有对这数组的操作!!!

如题所述

接受数组的方法很多1维数组a[]你可以
func(int *a);
func(int a[]);
func(int a[10]);
这3中方法的是没区别的,
但是要在函数中获取一位数组的长度是不可能的,这是C/C++的一个无法解决的问题。你可以再定义一个形参限定一下对数组操作的大小,
比如func(int *a,int N);
这样的前提是你要知道你所操作数组必须长度小于N
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-02
如果数组的大小需要由输入的数决定的时候可以用一楼的动态分配的方法
但如果大小根本就不知道 的时候 这是没有办法的 这是数组这个数据结构固有的缺陷--必须有固定的内存空间 但是因为其快速索引访问的能力 所以应用最为广泛 不过后来C++为了弥补这个缺陷 定义了很多容器 例如vector 它可以理解为数组 但是并不需要事先知道大小 可以动态地插入元素 有兴趣的可以去看一下c++primer这本书
第2个回答  2010-10-01
你可以这样:
int *a,n; /*假设数组是整型的*/
scanf("%d",&n); /*假设你要的数组大小为n个元素*/
a=(int *)malloc(sizeof(int)*n);

这样a就是有n个元素的数组的起始地址了,后面就可以使用了。呵呵!本回答被提问者采纳
相似回答