C_language_renew06

内存管理

  • 程序:经源码编译后的可执行文件。
  • 进程:程序加载到内存后开始执行至执行结束的这样一段时间概念。
  • 进程空间图
    stack 栈存储 容量比较小经常造成溢出
    heap 堆存储 无限大受实际内存的大小和内存是否连续性。

void *malloc(size_t_Size)
if(NULL == p) //常量不可以赋值
{}
  
一般用
void  *memset(void *buffer,int ch,size_t count);
memset (arr,0,40); 初始化malloc;

申请堆内存空间并返回,所申请的空间,自动清零。
 void *calloc(size_t nmemb,size_t size);
  void *realloc(void *ptr,size_t size);

切记 realloc()只能扩容,不能缩小空间
realloc  newPtr ptr 有可能相等,也有可能不相等,只使用realloc的返回指针。

堆内存的特点总结:
1、自申请,自释放
2、返回判空
    free(p)   p = NULL;
    //记得将释放的指针置为NULL 
3、配对使用

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

推荐阅读更多精彩内容