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

  • 动态分配内存原因

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

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

  • 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);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容