内存管理
calloc()
: 动态分配num个长size的连续空间, 每个字节初始化0: 即分配了num*size个字节长度的内存空间, 且每个字节值为0
void *calloc(int num, int size);
malloc()
: 堆区分配一块指定大小内存空间存放数据, 不初始化, 其值未知
free()
: 释放address指向的内存块, 释放动态分配的内存空间
void free(void *address);
realloc()
: 重新分配内存, 扩展内存到newsize
void *realloc(void *address, int newsize);
void *
:未确定类型的指针, C,C++中可通过强制转换类型转换为其他类型指针
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char name[100];
char *description;
strcpy(name, "Zara Ali");
description = (char*)malloc(200*sizeof(char)); // 分配内存
description = (char*)calloc(200,sizeof(char));
description = (char*)realloc(description, 100*sizeof(char)); // 重新分配内存
free(description); // 释放内存
}