一 calloc()
作用:分配一个二维存储空间
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n;
int *p1;
printf("输入数字:");
scanf("%d",&i);
p1=(int*)calloc(i,sizeof(int));
if(p1=NULL)
exit(1);
for(n=0;n<i;n++)
{
printf("输入数字 %d",n);
scanf("%d",&p1[n]);
}
//printf("输入:");
for(n=0;n<i;i++)
printf("%d",p1[n]);
free(p1);
return 0;
}
二 realloc()
作用:改变已分配内存的大小
#include <stdio.h>
#include <stdlib.h>
int main()
{
int input,n;
int count=0;
int *numbers = NULL;
do{
printf("enter an integer value:\n");
scanf("%d",&input);
count++;
numbers=(int*)realloc(numbers,count *sizeof(int));
if(numbers==NULL)
{
puts("Error(re)allocting memory");
exit(1);
numbers[count-1]=input;
}
}while(input!=0);
printf("Numbers entered:");
for(n=0;n<count;n++)printf("%d",numbers[n]);
free(numbers);
return 0;
}
三 malloc()
作用:分配空间
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n;
char *buffer;
printf("the size of string?\n");
scanf("%d",&i);
buffer=(char*)malloc(i+1);
if(buffer==NULL)
exit(1);
for(n=0;n<i;n++)
buffer[n]=rand()%26+'a';
//buffer[i]='';
printf("%s\n",buffer);
free(buffer);
return 0;
}
四 free():释放内存