怎样创建一个动态数组,比如,我动态输入数组的元素个数N?

我想创建这相一个数组,它的元素个数可以动态输入的,
比如:printf("enter the num of elements:");
scanf("%d",&n);
int a[n];
我知道这样是不行的,数组必须是个确定的。

给你一个代码吧,具体的看一下注释:

#include<stdio.h>
#include<stdlib.h> //需要include这个头文件,后面malloc库函数要用它

void main()
{
int n,i;
int *a; //需要这么声明动态数组,也就是先声明一个指针
printf("enter the num of elements:");
scanf("%d",&n);

a=(int *)malloc(n*sizeof(int));//取得数组的成员个数后,需要动态的申请数组空间

for(i=0;i<n;i++)
a[i]=i+1;

printf("Output: ");

for(i=0;i<n;i++) printf("%d ",a[i]);

delete a;//动态数组使用完毕后不要忘了释放所申请的数组空间
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-01
c里这样是不行的
只能使用动态分配内存
int *a;
a = (int *)malloc(sizeof(int)*n);
c++
int *a = new int[n];
第2个回答  2009-03-01
学习new吧
第3个回答  2009-03-01
学习下

matlab中如何创建动态数组
3、如果想把[2,2,2,2]的元素分配到cell数组的多个元素,可以用:[c{1:4}]=deal(2,2,2,2)如果数据存在一个变量中,且维数及元素数量未知,那么更通用一点的做法是 c=cell(1,10);a=[2,2,2,2];n=prod(size(a));b=mat2cell(a(:),ones(1,n),1);[c{1:n}]=deal(b{:})希...

怎么用C语言动态的创建一个数组呢?
3、为了给这个 row 行、col 列的数组分配存储空间,我们首先为行指针分配空间。4、接下来,我们为每行分配空间。5、二维数组创建完成。现在就可以用这个二数组接收输入了。6、我们将输入的值输出到屏幕上,以验证是否正确。7、我们动态创建了一个 2*3 的数组,数组的元素值依次是 1,2,3,4,5...

js如何动态添加数组?
1、在数组的开头添加新元素 - unshift() 源代码: <!DOCTYPE html> Click the button to add elements to the array. Try it function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.unshift("Lemon","Pineapple"); var x=document.getElementById("demo"); x....

C语言如何定义动态数组
intmain(void){ int*number,n,m,i;printf("thetotalnumbersis:");scanf("%d",&n);printf("backm:");scanf("%d",&m);number=(int*)malloc(n*sizeof(int));printf("input%dintegers:",n);for(i=0;i<n;i++){ scanf("%d",&number[i]);} ...

C++如何实现输入数组的个数,然后建立这个数量的数组?
代码如下:include <iostream>using namespace std;int main(){ int n; cout << "请输入数组元素个数"; cin >> n; \/\/ 建立数组 int *arr = new int[n]; \/\/ 赋值 for (int i = 0; i < n; i++) arr[i] = i; \/\/ 输出 for (int i = 0; ...

如何定义一个动态数组,可以随添加的元素而数组的长度自动增长?
int size\/\/ 当前数组长度 int MaxSize \/\/最大数组长度 int *a;初始化。。。\/\/数组装满,扩大空间 if(size == MaxSize){ a = (int *)realloc(a, 2*MaxSize*sizeof(int));MaxSize = 2*MaxSize;}

定义一个动态二维数组,从键盘输入行数和列数,然后给二维数组元素赋值...
putchar('\\n');} return 0;}*\/ \/\/ 方法二,通用动态内存 include<stdlib.h> include<stdio.h> include<string.h> int main(){ int **nums;int i, j;int row, col;scanf("%d%d", &row, &col);nums = (int **)malloc(sizeof(int *)*row);for(i = 0; i < row; i++){...

请问在C语言里如何将一个数组元素的个数设为输入的值?
如何将一个数组元素的个数设为输入的值呢,一般用动态分配。int *a; \/\/ 声明为指针。知道大小n后, 用动态分配:a = (int *) malloc(sizeof(int) * n);接下来就可以 把 a 看成 你 声明过 int a[n]; 了。对初学者来说,你开个大数组,多给些单元,就可以了。例如,你估计 你的...

VB 如何动态分配数组大小
ReDim DynArray (4 to 12)例如,用第一次声明在模块级所建立的动态数组 Matrix1:Dim Matrix1 () As Integer然后,在过程中给数组分配空间:Sub CalcValuesNow () ReDim Matrix1 (19, 29)End Sub这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。还有一...

c++中怎么定义一个数组的元素数为n,这个n是要输入的常量
比如int型的:int *a = new int[n];然后a就可以像数组那样操作,如a[1]等等 注意这种定义的话用完以后要记得删除:delete []a;

相似回答