c 如何定义数组未知大小的数组

C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定
C++问题:如何定义一个未知大小的一维数组,数组大小由输入的值决定 5
方法一: 
……

cout&&&请输入你想建立的一维数组维数:&&&
cin&&n;
int *array = new int[n];
……
delete []
方法二:
现代c++程序一般用容器vector代替数组。
vector&int&
添加值(比如1)用vec.pushback(1)
//元素个数 
cout&&&请输入数组的大小:&; 
cin&& 

int *//用指针指向一个数组 
array=new int[arraysize]; //动态内存分配 
.... 
delete []//最后要释放这个空间,是一组空间所以加了[]。 

array=new int[arraysize]; 
new表示申请空间;什么类型?int;多大?arraysize
其他回答 (6)
定义的时候,大小直接留空就ok了
char a[];
在c++要定义一个动态数组,要用到链表方面的知识,比较复杂啊,内容较多,一言两语是不能说清楚的,你可从网上查阅,或读数据结构方面的书籍吧
不可以,数组必须初始化
c++中可以用stl中的vector来完成啊,他是动态生成的啊,操作方便
动态数组动态分配空间就好了。
百度上百度动态数组,可以找找
上面已经给了很多方法。
无非就是指针或者STL~
相关知识等待您来回答
编程领域专家C++如何定义一个未知长度的数组_百度知道
C++如何定义一个未知长度的数组
提问者采纳
嗯 确实可以这么做,这在程序中叫做动态数组或者数组的动态扩展,其原理就是声明一种类型的指针,然后在定义的时候给它赋数组的大小
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何用c定义一个未知长度的整型数组a[n]?_百度知道
如何用c定义一个未知长度的整型数组a[n]?
提问者采纳
nCint Insert(int * pArray,固定分配一个你认为不会出现的维度值;
if(pArray)delete
pInt = new int[nCount+1],或者对数组进行动态分配,如果不知道长度:int *pA
pI} main(){
nCount = 0,nC
pInt[nCount++] =
= Insert(pArray,int nC
if(nCount&gt,int nElement){
int *pI0)memcpy(pInt,nArray,如,pArray = NULL,99)除常量数组外,nCount),数组必须是定长的,有几种办法
其他类似问题
按默认排序
其他2条回答
而把原先分配的内存归还给系统……
使用链表也能解决你的问题,当然也没有办法定义,那就在知道长度后用动态内存分配函数malloc()来为它分配内存,把数组拷贝过来,那么这样的数组没有什么实际意义。当数组的长度要发生变化时你可以重新为它分配内存。
如果你总是要知道长度的,就不必要定义如果你永远不知道数组的长度
加个头文件#include &malloc.h&int* a = (int*)malloc(sizeof(int));
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求二维数组最大值最小值所在位置2.定义一个二维数组\x05int[][] arra = {\x05\x05{1 ,3 ,479 ,10 ,20},\x05\x05{2 ,3 ,95 ,7 ,11},\x05\x05{7 ,9 ,300 ,10 ,21},\x05\x05{89 ,89 ,79 ,68 ,10}\x05\x05}\x05\x05找出行中最大,列中最下的数,并列出行,列相对_百度作业帮
求二维数组最大值最小值所在位置2.定义一个二维数组\x05int[][] arra = {\x05\x05{1 ,3 ,479 ,10 ,20},\x05\x05{2 ,3 ,95 ,7 ,11},\x05\x05{7 ,9 ,300 ,10 ,21},\x05\x05{89 ,89 ,79 ,68 ,10}\x05\x05}\x05\x05找出行中最大,列中最下的数,并列出行,列相对
2.定义一个二维数组\x05int[][] arra = {\x05\x05{1 ,3 ,479 ,10 ,20},\x05\x05{2 ,3 ,95 ,7 ,11},\x05\x05{7 ,9 ,300 ,10 ,21},\x05\x05{89 ,89 ,79 ,68 ,10}\x05\x05}\x05\x05找出行中最大,列中最下的数,并列出行,列相对应的下标(optional)3.给定一个字符串如下:\x05abcde中国人民热爱programmer呵呵努力学习振兴中华playbasshiyoussayhello\x05查找出出现频率最高的字符(有可能多个字符出现频率一样高)\x054.定义一个一维数组\x05int[] arra = {1,4,7,3,2,10,22,98,-3,0}\x05int step = 2;//步长\x05\x05完成打印数组中所有的元素,从下标0开始,每隔step个元素打印.直至所有元素被打印完毕.
用Matlab!可以调用 fmincon函数.具体代码如下.function y = fmin(x )x11=x(1);x12=x(2);x13=x(3);y1=x(4);x21=x(5);x22=x(6);x23=x(7);y2=x(8);x31=x(9);x32=x(10);x33=x(11);y3=x(12);y=1.5.*x11+0.7.*x12+1.6.*x13+0.85.*y1+0.8.*x21+1.5.*x22+2.2.*x23+1.00.*y2+1.2.*x31+2.3.*x32+1.1.*x33+0.90.*y3;end
%创建最小值函数function [c ceq] = mycon( x )c=0;ceq(1)=x(4).*(x(4)-1);ceq(2)=x(8).*(x(8)-1);ceq(3)=x(12).*(x(12)-1);end
%创建非线性约束条件函数.&& A=[1 1 1 -1.7 0 0 0 0 0 0 0 0;0 0 0 0 1 1 1 -2.9 0 0 0 0;0 0 0 0 0 0 0 0 1 1 1 -2.1;-1 -1 -1 0 0 0 0 0 0 0 0 0;0 0 0 0 -1 -1 -1 0 0 0 0 0;0 0 0 0 0 0 0 0 -1 -1 -1 0];b=[0;0;0;-1.2;-0.8;-1.5]&& lb=zeros(1,12);&& x0=zeros(1,12);&& fmincon('fmin',x0,A,b,[],[],lb)结果如下.ans =
0顺序是 x11,x12,x13,y1,x21,x22, .y3&& fmin(ans)ans =
2.5119可能有点晚了.不过还是希望能够帮助你.若满意请采纳! ^.^
您可能关注的推广}

我要回帖

更多关于 java如何定义数组 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信