【C语言】内存管理

内存管理

  • calloc(): 动态分配num个长size的连续空间, 每个字节初始化0: 即分配了num*size个字节长度的内存空间, 且每个字节值为0
    • void *calloc(int num, int size);
  • malloc(): 堆区分配一块指定大小内存空间存放数据, 不初始化, 其值未知
    • void *malloc(int num);
  • 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);  //  释放内存
}

猜你喜欢

转载自blog.csdn.net/weixin_46143152/article/details/126688351