头条天后txt书包网:c语言中动态数组的定义怎么做啊!

来源:百度文库 编辑:高校问答 时间:2024/05/06 05:58:30
我想先从外面输入一个数,然后来确定这个数组的大小!
---------------------------------致敬!

C还是C++,如果是C,你只能用malloc函数分配,比如

int nLen;
double * pArray;//动态书组
scanf("%d",&nLen);
pArray=malloc(nLen* sizeof(double));

....

free(pArray);

如果是C++,可以用MFC的CArray,或者STL的vector

如果要增长,可用realloc

对一位数组,不知道数组大小可以这样做:
int *a;
int i,n;
scanf("%d",&n);
a=(int *)malloc(n*sizeof(int));
这样就相当于C++的定义:
int n;
int a[n];
cin>>n;

对2位数组操作如下:
int **a;
int i,m,n;
scanf("%d %d",&m,&n);
*a=(int **)malloc(m*sizepf(int *));
for (i=0;i<m;i++)
a[i]=(int *)malloc(n*sizeof(int));
这样就相当于C++的定义:
int m,n;
int a[m][n];
cin>>m>>n;

C++中的实现方法:

int num;
cin>>num;
int* arr = new int[num];
……使用arr……
delete []arr;删除分配的空间