
计算机语言---c语言
C语言学习过程中的技术积累。
头前一点白
工作,学习,生活,娱乐。正在学习平衡这些,做努力向上的人。
展开
-
运行程序内存分析。(c语言)
程序存放在硬盘中,当要执行程序时,操作系统将硬盘中的代码加载到内存,找到main函数作为程序入口,开始执行。程序执行的过程是在内存中完成的,下面说一下c程序执行中内存的管理:可以将其分为四大分区(也可以分为五大分区):堆区(heap)。由操作系统管理,malloc/free/delete等代码建立,一般由程序员分配与释放(即申请和释放),如果程序员不释放,程序结束后可能由操作系统回收。栈区。是...原创 2018-04-15 10:38:57 · 1239 阅读 · 0 评论 -
测试堆和栈的开口方向
我们知道程序是在内存中运行的,内存可以分为四个分区,如果不清楚可以参考文章《运行程序内存分析(c语言)》https://blog.youkuaiyun.com/suoyudong/article/details/79946689我们今天来探讨的是测试堆,以及栈的开口方向。一般来说,栈的开口方向是向下的,堆的开口方向是向上的。测试方法:栈测试。局部变量在操作系统分配内存是栈操作,我们可以定义两个局部变量,...原创 2018-04-15 11:12:04 · 2615 阅读 · 1 评论 -
检验内存泄漏memwatch的使用
项目中检索内存泄漏,memwatch的使用首先下载源码,可以在网上down一份源码,如果找不到可以在我的资源那下载,我已经上传。下载后将其加入到项目中,在c盘下新建一个文件夹命名为itcast。然后在属性/预编译处理加入宏 分别是MEMWATCH和MW_STDIO写测试代码。#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#in...原创 2018-05-23 19:46:30 · 540 阅读 · 0 评论 -
关于内存对齐详细解释
什么是内存对齐? 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自的空间相加,这里涉及到内存对齐的问题。访问未对齐的内存,处理器需要访问两次(数据先读高位再读低位然后进行拼接),而访问对齐的内存,只需要一次。为了提高效率,所以进行内存对齐。windows的默认对齐数是8,linux中默认对齐数为4.为什么会产生内存对齐的原因?1.平台原因:某些...原创 2019-03-09 14:58:28 · 1059 阅读 · 0 评论