想要一个算法 能根据输入的长度 自定义一个数组的长度,即使浪费一两个存储空间也没事 比如先定义 int a[1]; 然后再追加空间也可以! 但一定要想要多长就有多长!
还有就是数组的下标 可以是const类型的常变量吗?
我用了还是有错误
: error C2057: expected constant expression
数组的下标 可以是const类型的常变量吗?
我用了还是有错误
: error C2057: expected constant expression
把你代码发来看看
追问int num;
cin >> num;
int y=choice(num,3);
下面是choice
int choice(int num,int pst=3){
int i,coutq=0,x=0;
const int n=num;
int a[n];
for(i=0;i<n;i++)
a[i]=1;//初始化标记
for(i=0;x<n;i++)
{ i=i%n;
if(a[i]==1)
{
coutq++;
coutq=coutq%pst;
if(coutq==0)
a[i]=0,x++;
}
} return i;
C++ 中如何简单理解动态数组,为什么说他是动态的,使用时还要给它分配...
动态数组就是在程序运行当中分配数组的大小,比如你输入一个n,就可以动态申请含有n个元素的数组a int* a=new int[n]; 动态数组可以避免静态数组过小不够用和过大浪费空间的问题。
c++如何用数组来模拟动态内存分配
四、这时候就可以写动态内存分配的函数了,根据需要分配的大小,找出一片未使用的连续的内存页。比如第二步中定义一页是4字节,需要5个字节的内存,就分配两页(多出来的3字节就没办法了,浪费掉了)。找到内存页后将几个内存页标记为已使用,同时给几个内存页赋想相同的内存分配标识,然后返回第一...
动态分配内存的动态分配内存的方法(C\/C++)
(1)new可用来生成动态无名变量如 int *p=new int;int *p=new int [10]; \/\/动态数组的大小可以是变量或常量;而一般直接声明数组时,数组大小必须是常量又如:int *p1;double *p2;p1=new int⑿;p2=new double [100];l 分别表示动态分配了用于存放整型数据的内存空间,将初值12写入该内存空间...
C\/C++如何分配未知长度的数组的内存空间?动态内存分配?
a = malloc(k,sizeof(int));两个函数唯一的区别就是第一个函数将开辟的内存空间初始化为0,而malloc却没有。3.然后你就可以把公共元素存入到这个行开辟的内存空间中来(这个也不用多说了吧)4.当你的程序任务完成以后,记得释放你所开辟的内存空间,使用这个命令:free(a)...
请问:C++中数组长度怎么动态分配?!
int N ;\/\/ 定义一个int型整数 N \/\/当N的值确定以后,再定义数组 int *p = new int[N];\/\/p[N]就是你要的数组 \/\/但是这种方法,数组不用以后,必须自己释放 delete []p; \/\/释放数组
c++中有个语句是f0=new double *[Ny]。new double 是什么意思?
new 是C++动态分配内存的一种方式,比如说你定义一个数组double ary[100];它的元素个数确定了就是100个,但是你要是这样(也就是只声明没有为数组分配内存空间大小):double *ary;这种情况适合于比如说你不知道这个数组应该定义多大合适,那么在后面使用这个数组时候很灵活,就可以让它的大小是你实际...
c++中new和delete的用法
在C++编程中,使用new分配的数组可用delete释放。这里释放的是动态分配的数组空间,而不是静态分配的数组空间,详细步骤:1、例如,我们动态创建了一个一维int数组arr,现在需要将它释放。2、这时只需要使用delete[]数组名即可。3、注意,要释放数组所占的内存,[]不能少。否则,用delete则不能完全释放...
C++动态数组的作用
\/\/用指针p指向new动态分配的长度为len*sizeof(int)的内存空间 int *p=new int[len]; ... delete[] p; return 0; } 注意int *p=new int[len];这一句,你不能这样做: int p[len]; C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不...
C\/C++中数组动态申请(malloc\/new等)有上限吗?
具体的数值看你在什么操作系统下了,在Linux下,在32位地址空间为4GB的前提下,操作系统占据1G,其余3G可以让应用程序本身使用,这包括代码、数据、栈空间、堆空间等。windows下有点内存布局也类似,只是具体的数值有点不一样。你说的“我记得C中局部变量的二维数组太大就会运行报错了,结果放全局变量就...
c++中,可以用delete释放一个数组的空间吗?
用delete释放的只能是用new动态分配的数组空间,若数组不是动态分配的则不能用delete释放。举两个例子详细说明一下:int a[100];这个数组a是不能用delete释放空间的,因为这个数组a在声明时就已经说明了空间的大小,在最后程序会自动释放这个空间。int *b;b=new int[100];这个要在最后用delete []b...