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个char大小内存
p = realloc( p, sizeof(char) * );//调整p为100个char大小的内存
free(p);//释放申请的堆内存,p不可改变
c语言学习笔记.内存管理.的更多相关文章
- C语言学习笔记--内存分区
		1. 程序中的栈 1.1 栈的简介 (1)栈中现代计算机程序里最为重要的概念之一 (2)栈在程序中用于维护函数调用上下文 (3)函数中的参数和局部变量存储在栈上 (4)栈保存了一个函数调用所需的维护信 ... 
- JVM学习笔记-内存管理
		第一章 内存分配 1. 内存区域. 方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离). 1) java虚拟机栈:线程私有.描写叙述的是java方法执行的内存模 ... 
- C语言学习笔记--内存操作常见错误
		1. 野指针 (1)指针变量中的值是非法的内存地址,进而形成野指针 (2)野指针不是 NULL 指针,是指向不可用内存地址的指针 (3)NULL 指针并无危害,很好判断,也很好调试 (4)C 语言中无 ... 
- C学习笔记-内存管理
		作用域 一个C语言变量的作用域可以是代码块 作用域,函数作用域或者文件作用域 代码块是{}之间的一段代码 同一个代码块不可以有重名变量 auto自动变量 一般情况下代码块内部定义的变量都是自动变量 也 ... 
- C语言中的内存管理
		开始陆续的发一下唐老师视频的笔记吧,顺便带一些正冲哥书的的内容.不能一下都发出来,因为内容发多了自己也受不了,而且发的都是学习视频时候的一些笔记,可能会有一些问题不是很清晰. 先说一下C语言中的内存管 ... 
- 《C# 语言学习笔记》——C# 简介
		1 什么是.NET Framework .NET Framework 是Microsoft为开发应用程序而创建的一个富有革命性的新平台. 1.1 .NET Framework 的内容 .NET Fra ... 
- JVM学习笔记——内存结构篇
		JVM学习笔记--内存结构篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存结构部分 我们会分为以下几部分进行介绍: JVM整体介绍 程序计数器 虚拟机栈 本地方法栈 堆 方法 ... 
- java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略(4)
		Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项 ... 
- java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)
		概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ... 
随机推荐
- c# assembly
			string path = @"c:\text.dll" Assembly assembly = Assembly.LoadFile(path); path = "MyP ... 
- 碰到的一个新的东西——yaml,果然是个好东西
			yaml 基础语法可以看阮一峰大大的博客[yaml 语言教程] 看过了 xml 和 json之后,看一眼这个 yaml,觉得少写了好多东西,不用再去找层级关系了, yaml 直接一目了然,没有了尖括号 ... 
- shit Rap & mock api
			shit Rap & mock api https://thx.github.io/RAP/study.html https://github.com/thx/RAP/wiki/quick_g ... 
- 【bzoj3064】Tyvj 1518 CPU监控  线段树维护历史最值
			题目描述 给你一个序列,支持4种操作:1.查询区间最大值:2.查询区间历史最大值:3.区间加:4.区间赋值. 输入 第一行一个正整数T,表示Bob需要监视CPU的总时间. 然后第二行给出T个数表示在你 ... 
- FTP安装
			FTP 一.安装,挂第3张光驱 1.挂盘 2.进入cdrom中,路径:cd /mnt/cdrom 3.进入RPMS中,路径:cd /mnt/cdrom/RedHat/RPMS 4.查看版本为:vsft ... 
- 【数据库_Mysql】Mysql知识汇总
			1.将多列字段合并显示用CONCAT(XX,XX,...): 2.查询表中某字段重复的数据: 查重复字段:select 字段 from table group by 字段 having count(* ... 
- 【Linux】无法将 Ethernet0 连接到虚拟网络“VMnet8”
			Linux安装centos之后,可能会出现ipconfig命令之后没有看到eth0信息,只有lo.log日志包的错为:无法将 Ethernet0 连接到虚拟网络“VMnet8” 解决办法有: 1.在虚 ... 
- BZOJ3591 最长上升子序列(状压dp)
			之前听说过一种dp套dp的trick,大致是用另一个dp过程中用到的一些东西作为该dp的状态.这个题比较类似. 考虑求LIS时用到的单调队列.设f[S]为所选取集合为S的方案数,其中在单调队列内的标2 ... 
- 【刷题】BZOJ 2152 聪聪可可
			Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)--遇到这种问题,一般情况下石头剪刀布就好 ... 
- HBase多租户机制分析
			在HBase1.1.0发布之前,HBase同一集群上的用户.表都是平等的,没有优劣之分.这种’大同’社会看起来完美,实际上有很多问题.最棘手的主要有这么两个,其一是某些业务较其他业务重要,需要在资源有 ... 
