c语言------动态分布内存

  • 动态分配内存原因

1、存储的数据需要延长生命周期
2、一个指针变量需要存储数据,变量本身只能存地址,不可存数据,需要分配内存空间来存储数据

  • c语言为内存的分配和管理提供了几个函数(导入库为

  • void malloc(int num,int size);
    在内存中动态的分配num个长度为size的连续空间,并将每一个字节都初始化为0,所以它的结果是分配了num
    size个字节长度的内存空间,并且每一个字节值都为0.
  • void free (void *address);
    该函数释放address所指向的内存块,释放的是动态分配的内存空间。
  • void*malloc(int num);
    在堆区分配一块指定大小的内存空间,用来存放数据,这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。
  • void *relloc(void *address,int newsize);
    重新分配内存,把内存扩展到newsize。
  • 内存分配

用指针变量接收数据,必须为指针变量分配一块指向的内存空间

char 8name;

用malloc(memory alloc)申请内存空间

name= (char *)malloc(10*sizeof(char));

使用realloc动态改变已经分配内存的大小

name = (char *)realloc(name,20*sizeof(char));

使用完必须自己动手释放内存

free(name);

你可能感兴趣的:(c语言------动态分布内存)