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不可改变

       

  • 相关阅读:
    Shell基础
    个人对JavaScript预编译的理解
    文件系统管理
    文件特殊权限
    权限管理ACL权限
    用户和用户组管理
    RPM包管理-yum管理
    oracle11g完全卸载方法
    JVM概述
    复杂查询优质习题
  • 原文地址:https://www.cnblogs.com/protogenoi/p/9014176.html
Copyright © 2011-2022 走看看