www.fltk.net > C++中定义一个数组一定要给出长度吗?

C++中定义一个数组一定要给出长度吗?

静态数组是要指定大小的.你需要的是动态数组例://定义一个动态数组arrayint *array;// 运行中知道其大小为num, 此时再为其分配内存array = new int[num];// 然后可以像静态数组一样使用array[0] = 1;array[100]=300;// 最后释放内存delete[] array;

int n, *p;p=(int *)malloc(n*sizeof(int));用输入函数输入数组长度n,然后执行上面的动态分配,是指针p指向分配的数组起始地址

int size;//size表示数组长度 size=<表达式>;//给size赋值 int * p=new int [size];//要定义不确定长度数组,必须动态分配,此处以定义int型数组为例//接下来用*(p+i)来访问数组//最后delete [] p

要定义一个不知道长度的数组是不可能的..因为,“定义”是要在内存中开辟空间的..假如说,你不知道要开辟多大的空间,系统怎么给你分配空间呢?? 不过,你可以实现动态分配空间..比如:int len = 0;cin>>len;int *pointer = new int[len]; 首先要用户输入数组长度,然后再分配.这样就实现了动态分配数组的目的了..

声明数组的时候可以这样 int * array=new int [arraysize] 扩充的时候,编写一个函数来改变size值以及把原来的数值复制到一下就行 像:void array::resize(int sz) { int *newarray=new int[sz]; int n=(szint *src=element //源数组指针 int * des=newarray; while(n--) *des++=*src++; delete [ ]element; element=newarray; arraysize=sz; } 这样就可以随意改变数组长度了

假设你的数组是type a[]; 那么可以用 size0f(a)/sizeof(type)来计算出数组长度,然后在输入代码中根据该长度截断输入

在C/C++中有多个函数能够达到你所需的功能,最常的是malloc()函数和new 命令如临时开辟一个10个单元的整数空间:用malloc:int *pint;pint=(int *)malloc(sizeof(int)*10);用new:同上:int *pint;pint=new int[10];用完后要及时删除(释放):针对第一种方法:free(pint);针对第二种方法:delete[]pint;

1、首先,定义一个自定义函数,实现字符数组长度的判断.2、自定义函数中,定义一个整型变量i,用来计算字符数组的长度.3、函数中,用while循环实现字符数组长度的判断.4、主函数中,先保存一个整型变量,保存计算出的字符串数组长度.5、接着,定义一个字符串数组,保存统计的字符串.6、输入统计的字符串,保存在数组str中.7、计算字符串数组的长度,保存在变量n中.8、最后,输出计算得到的字符串长度.

没分也帮你,哥是好人,呵呵在C++中实现变长数组 1.变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组.实现变长数组最简单的是变长一维数组,你可以这样做: //文件名: array01.

数组定义必须明确数组长度,所以未知长度的数组是无法直接定义的. 如果你的数组在运行过程中可以确定,比如你输入一个整数来确定数组长度,这样的话可以通过动态内存分配实现.比如: int a;cin>>a;int *b=new int[a];如果你的数组运行的时候都无法确定长度,比如你的数组可能会不断的添加新元素进去.这时候可以使用C++的标准库vector实现,比如: vector<int> array;array.push_back(10);array.push_back(10);array.push_back(10);

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com