C——malloc
一维数组
#include<studio.h>
#include<stdlib.h> //使用mollac
#include<memory.h> //使用memset
int mian()
{
int n;
scanf("%d",&n);
int *m;
m=(int*)malloc(n*(sizeof(int)));
memset(m,0,n); //初始化
int i;
for(i=0;i<n;i++)
{
m[i]=i;
}
free(m);//释放内存
return 0;
}
二维数组
#include<studio.h>
#include<stdlib.h> //使用mollac
int mian()
{
int a,b;
scanf("%d %d",&a,&b);
int **m;
m=(int**)malloc(a*(sizeof(int*)));
int i,j;
for(i=0;i<a;i++)
{
m[i]=(int*)malloc(sizeof(int)*b);
}
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
m[i][j]=1;
}
}
for(i=0;i<a;i++)
{
free(m[i]);
}
free(m);//释放内存
return 0;
}
C++——new
c++要求定义数组时,必须明确给定数组的大小,要不然编译通不过
如: int Array[5];正确
int i=5;
int Array[i]; 错误 因为在编译阶段,编译器并不知道 i 的值是多少
类型 *m;
m=new 类型[长度];
delete []m;
一维数组
int n=10;
int *p=new int[n];
二维数组
int size=50,Column=50;
int (*p)[Column]=new int [size][Column]
是错误的,column需要是常数
改成如下:
int n=10;
int (*m)[10]=new int [n][10];