zoukankan      html  css  js  c++  java
  • c语言学习笔记.内存管理.

    内存:

      每个程序的内存是分区的:堆区、栈区、静态区、代码区。

      1.代码区:放置所有的可执行代码,包括main函数。

      2.静态区:存放所有的全局变量静态变量

      3.栈区:栈(stack),先进后出。存储所有的自动变量、函数形参

      4.堆区:堆(heap)和栈一样,程序运行过程中可以随时修改的内存区域。

    动态(堆)内存管理:

      C 语言为内存的分配和管理提供了几个函数。这些函数可以在 <stdlib.h> 头文件中找到。

    void *calloc(int num, int size);/*分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0 */
    void free(void *address); /*释放 address 所指向的内存块*/
    void *malloc(int num); /*区分配一块指定大小的内存空间,用来存放数据*/
    void *realloc(void *address, int newsize); /*重新分配内存,把内存扩展到 newsize*/

      内存动态分配、调整与释放:

    char *p = (char *)malloc(sizeof(char) * 30);//在堆中申请了30个char大小内存
    p = realloc( p, sizeof(char) * 100);//调整p为100个char大小的内存
    free(p);//释放申请的堆内存,p不可改变

       

  • 相关阅读:
    idea 配置git
    mybatisgenerator自动生成Mapper.dao.entity
    Eclipse中设置作者日期等Java注释模板
    二分图匹配KM算法
    网络流最小费用最大流
    图论tarjan
    STL的一些基本操作
    图论拓扑排序
    字符串的一些基本操作
    网络流最大流
  • 原文地址:https://www.cnblogs.com/protogenoi/p/9014176.html
Copyright © 2011-2022 走看看