奖励30分!C/C++

来源:百度知道 编辑:UC知道 时间:2024/06/03 00:19:23
如题。回答好的奖励30分
数组长度,我想定义一个数组,但是长度是由测试者从键盘输入,请问如何实现?int N;cin>>N; int a[n];这样不可以啊。请高手指点。

C++
int n;
cin>>n;
int* a = new int[n];
C:
int n;
scanf("%d", &n );
int* a = malloc( n*sizeof(int) );

C/C++里面定义一个数组必须能明确知道他的大小,语言就是这样规定的,没办法。不像java或VB
楼上的是在堆里申请内存的,是一个方法,具体实现看楼上
也可以用vector,list

C++允许程序员动态申请内存,申请成功后系统返回内存的首地址值。
C++中用 new 操作符动态申请内存,用 delete 回收( new 申请的)内存。

本题
int nsize;
int *pn;//作为一维数组为
cin>>nsize;
pn = new int[nsize];//向系统申请 nsize×4 字节大小的内存,将首地址返回给 pn.
...操作...
delete []pn;// pn 指向的是数组的内存,因此回收时用 []

只能动态申请,同意 ☆真诚到永远☆

看1,3楼的过程