C语言动态内存分配
1.动态内存分配函数:
(1) void *malloc(size_t size);
返回void * 指针
(2) void *calloc(size_t nmemb,size_t size)
calloc用于分配n个连续的指定大小的内存空间,每个内存空间的大小为size个字节,总字节为 n*size,分配的空间全部初始化为0
例:分配50个int型
int *p=(int *)calloc(50,sizeof(int));
2.动态内存调整函数:
void *realloc(void *ptr,size_t size);
realloc将指针ptr所指向的动态内存空间扩大或缩小size大小,无论扩大或缩小,原有内存中的内容将保持不变,缩小空间会丢失缩小的那部分内容。如果调整成功,函数返回一个指向调整后的内存空间的起始地址的void类型指针
例如:
int *p;
p=(int*)malloc(50*sizeof(int));
p=(int *)realloc(p,10*sizeof(int));//调整为有10个int型的内存空间
p=(int *)realloc(p,100*sizeof(int));//再次调整为有100个整形变量的内存空间
3.动态内存释放:
void free(void *ptr);
参数ptr指向已有的内存空间。如果ptr为NULL,则free什么也不做。

浙公网安备 33010602011771号