#include<stdio.h>#include<malloc.h>intmain(){int* p=NULL;//一级指针动态申请内存成为一维数组
p=(int*)malloc(sizeof(int)*3);assert(p);//(指针类型)malloc(sizeof(指针所指向的类型)*个数);//当申请一个变量内存时,可以不用写 *个数//int* p //指针的类型: 去掉变量名: int*//指针所指向类型: 去掉变量名和* :int (操作的数据类型)for(int i =0; i <3; i++){
p[i]= i;printf("%d\t", p[i]);}printf("\n");return0;}
calloc和realloc的使用
#include<stdio.h>#include<malloc.h>intmain(){int* pc =(int*)calloc(3,sizeof(int));//3也可以是变量assert(pc);for(int i =0; i <3; i++){printf("%d\t", pc[i]);}printf("\n");int* pr =realloc(pc,sizeof(int)*6);//其中sizeof(int) * 6一定要比原来大小要大assert(pr);for(int i =0; i <6; i++){printf("%d\n", pr[i]);}//free(pc);//同一段内存不能被重复释放//pc = NULL;free(pr);//因为申请后只有一段内存,所以只要对pr释放一次就行了
pr =NULL;return0;}