1.堆内存管理
malloc函数
—分配变量
int *p;
p = (int *)malloc(sizeof(int));

—分配数组
int *p;
p = (int *)malloc(sizeof(int) * 10);
p[5] = 10;

calloc函数与malloc作用相同,只是会把分配到的所有字节都清0.

int main(void)
{
    char *str = NULL;
    str = (chat *)calloc(10,sizeof(char));
    strcpy(str, “Hello”);
    printf(“String is %s\n”,str);
    return 0;
}

realloc 函数
1.先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回
如果空间不够,先按照newxize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配
的内存区域首地址

free函数:用于释放(回收),从堆中分配的空间(内存)
int main(void)
{
    char *str = NULL;
    str = (char *)calloc(10,sizeof(char));
    strcpy(str,“Hello”);
    printf(“String is %s\n”,str);
    free(str);
    return 0;
}