c语言动态存储操作三函数:malloc;calloc;free
malloc:///返回的是一个内存地址;void * 动态分配一个存储空间
calloc:///返回的同样是一个内存地址; 动态分配多个存储空间
代码:malloc
#include<stdio.h>
#include<stdlib.h>
main(){
int *p;
p=(int *)malloc(sizeof(int));/*malloc返回一个内存地址,需要强制转换(int *)*/
*p=200;
printf("%d",*p);
free(p); //动态分配过后要释放p
}
代码:calloc
#include<stdio.h>
#include<stdlib.h>
main(){
char *p;
p=(char *)calloc(3,sizeof(char));/*calloc返回3个内存地址,需要强制转换(int *)*/
for(int i=0;i<3;i++){
*p=getchar();
p++;
}
p-=3; //回到首个内存地址
for(int i=0;i<3;i++){
putchar(*p);
p++; //指针向后移动一个位置
}
p-=3; //回到首个内存地址,,必须回到开始的地方才能完全释放
free(p); //动态分配过后要释放p
}