c语言-内存分段

问题描述

内存分段

如何用C语言将内存分段并设置其管理属性?

解决方案

http://download.csdn.net/detail/soke520/3986427
http://blog.csdn.net/yang_yulei/article/details/24142743
http://wenku.baidu.com/link?url=In1L8EPB4ndP7QkzZVCEYmNB9bRtQZhVygy-_m11AzplF1HOv3Kki4UY4iMf-LKu4N5MAJfOcpnYWSiCqUSlCTayLV6Sf7VO9MhGAC_kWWe

解决方案二:

?
预定义段?

   一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段。这种做法与MS-DOS和Windows 3.1中的代码段和数据段相似。事实上,应用程序定义一个独特的......
答案就在这里:内存分段

时间: 2024-10-20 08:53:44

c语言-内存分段的相关文章

深入理解C语言内存对齐

 这篇文章主要介绍了C语言内存对齐,有需要的朋友可以参考一下 一.内存对齐的初步讲解   内存对齐可以用一句话来概括:   "数据项只能存储在地址是数据项大小的整数倍的内存位置上"   例如int类型占用4个字节,地址只能在0,4,8等位置上.   例1:   代码如下: #include <stdio.h> struct xx{         char b;         int a;         int c;         char d; };   int m

C语言内存对齐详解

一.字节对齐基本概念     现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存 储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生 错误,那么在这种架构下编程必须保

C语言内存释放与调用子函数时间变长

问题描述 C语言内存释放与调用子函数时间变长 各位大神,你们好: 小弟最近用C语言编程遇到这样一个问题(代码比较多,就不粘了,见谅): 在子函数A中用malloc申请内存,在调用函数A的B函数中释放申请的内存.重复运行100次函数B,发现:在函数B中若不释放A的申请的内存,每次A运行的时间基本一样,而内存占用量持续上升:若在函数B中释放A申请的内存,占用内存问题解决了,然后每次调用A的时间又持续上升. 完全没有搞明白这是个什么情况,你们怎么看? 解决方案 堆上的内存申请和释放一定要一一对应,用完

C语言内存分配管理常见bug

标准C库提供了4个内存管理函数:malloc.calloc.realloc和free. bug1 调用free释放p指向的内存块之后,p就是一个悬挂指针--指向逻辑上不存在的内存的指针.如果引用这个悬挂指针,会导致不可预见的错误. ElemType* p = (ElemType*)malloc(sizeof(ElemType) * NUM); ... free(p);// p = NULL; ... *p = "..."; bug2 释放空闲内存,破坏内存管理函数所用的数据结构. El

bbs段-C语言内存管理,BBS段内存分配

问题描述 C语言内存管理,BBS段内存分配 #include<stdio.h> int a; int b; int c=1; int d=1; void main(){ printf("%dn",sizeof(int)); printf("%p,%p,%p,%pn",&a,&b,&c,&d); } 运行结果: 4 00404090,004040A0,00402000,00402004 想要问的是:程序是不是给变量a,b分配

c语言-C语言内存分配malloc导致的程序退出

问题描述 C语言内存分配malloc导致的程序退出 char *p; while (1) { p = malloc(1); *p = 0; } 这样写最后是因为没有内存退出还是向0写入退出?怎么感觉是内存完了 解决方案 内存分配失败就会返回空指针 解决方案二: 堆内存被使用完后,在申请就睡失败,p就是NULL,即地址为0写入,而这个地址是受程序保护的,无法写入因此退出 解决方案三: 个人觉得你这个应该是会导致堆内存不够,导致程序异常退出

int-C语言内存管理问题,要注重细节

问题描述 C语言内存管理问题,要注重细节 int pOld = (int) malloc( sizeof(int) ); int pNew = (int) malloc( sizeof(int) ); pOld=pNew; free(pOld); 这样写代码,有什么问题? 解决方案 代码顺序需要调整一下,pOld在赋值成pNew之前就必须free掉,不然第一次malloc出来的内存块就没有任何指针指向它了,也就是说我们失去了回收它的途径,所以正确的代码应该像下面这样: int pOld = (i

C语言内存对齐实例详解_C 语言

本文详细讲述了C语言程序设计中内存对其的概念与用法.分享给大家供大家参考之用.具体如下: 一.字节对齐基本概念 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同.一些平台对某些特定类型的数据只能从某些特定地址开始存取.比如有些架构的C

C语言内存泄露检测--Memwatch

项目:迅雷下载库内存泄露检测 作者:曾金龙 供职:深圳迅雷网络技术股份有限公司 领域:迅雷下载库 时间:2014-07-26 迅雷的移动下载库是用C语言编写的,为了能够横跨欧亚非拉(ios,android,还有诺基亚的什么系统来着,对了symban)和性能,我们厂的下载库就选择了C,然后在C代码里面使用各种宏,预编译等来达到一 个下载库,多平台使用.不过平台相关的都已经约束在了一个叫common的库里面的一个子模块里面了.这极大的解放了我厂的码农朋友. 但是C毕竟是C,在聊起C的时候,我们组最喜