动态内存
malloc, calloc ,realloc 在堆内申请内存
int *arr=(int * )malloc(n *sizeof(int));申请动态内存 相当于int arr[n];
内存大,基本上不用担心越界;
free(arr)释放内存
栈的大小 :默认1M ,大小可调
堆的连续最大块大小 :1.2G
int *arr=(int *)malloc(n*sizeof(int)); //申请内存//相当于int *arr=(int *))calloc(n,sizeof(int))
int i;
int j;
for(i=1;i<n;i++)
{
arr[i]=0;
}
int arr=(int )realloc(arr,n2sizeof(int));
原来的内存不够,将原来的内存扩容到2倍,再赋值给arr
int n=100;
int *a=(int *)malloc(n*sizeof(int));
int i;
for(i=0;i<n;i++)
{
a[i]=i;
}
int *b=(int *)malloc(n*2*sizeof(int)); //相当于int *arr=(int *)realloc(a,n*2*sizeof(int));
for(i=0;i<n;i++)
{
b[i]=a[i];
}
free(a);
a=b;
b=NULL;