![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 75
vipzqs
电脑、音乐
展开
-
CORBA规范定义的几个常用基本方法
1. 编码之前(研究和分析) 1.1 摸索经验 1.1.1 了解用户 1.1.2 了解管理部门 1.1.3 了解环境 1.1.4 里程碑标记 1.2 指定蓝图和增强信心 1.2.1 定义产品 1.2.2 分析需求 1.2.3 创建计划 1.2.4 提出提议 1.2.5 里程碑标记 1.3 着手第1项工作 1.3.1 组建团队 1.3.2 提供培训 1.3.3 鼓励协作 1.3.4 里程碑标记转载 2008-04-11 10:17:00 · 602 阅读 · 0 评论 -
浅谈C/C++内存泄漏及其检测工具(三)
使用BoundsChecker检测内存泄漏: BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进 程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后 再执行转载 2008-04-16 15:07:00 · 561 阅读 · 0 评论 -
C++中动态内存分配引发问题的解决方案(一)
假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为200, 但一般的情况下又不需要这么多的空间,这样是浪费了内存。对了,我们可以使用new操作符,这样是十分灵活的,但在类中就会出现许多意想不到的问题,本文 就是针对这一现象而写的。现在,我们先来开发一个Wrong类,从名称上看出,它是一个不完善的类。的确,我们要刻转载 2008-04-16 15:09:00 · 365 阅读 · 0 评论 -
Bjarne:如何对付内存泄漏?
写出那些不会导致任何内存泄漏的代码。很明显,当你的代码中到处充满了new 操作、delete操作和指针运算的话,你将会在某个地方搞晕了头,导致内存泄漏,指针引用错误,以及诸如此类的问题。document.write(""); 这和你如何小心地对待内存分配工作其实完全没有关系:代码的复杂性最终总是会超过你能够付出的时间和努力。于是随后产生了一些 成功的技巧,它们依转载 2008-04-16 15:11:00 · 322 阅读 · 0 评论 -
踏入C++中的雷区——C++内存管理详解(二)
4、指针参数是如何传递内存的? 如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num){ p = (char *)malloc(si转载 2008-04-16 15:15:00 · 357 阅读 · 0 评论 -
踏入C++中的雷区——C++内存管理详解(三)
6、有了malloc/free为什么还要new/delete? malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构 函数。由于malloc/free是库函数而不是运算符,不在原创 2008-04-16 15:16:00 · 448 阅读 · 0 评论 -
踏入C++中的雷区——C++内存管理详解(四)
8、malloc/free 的使用要点 函数malloc的原型如下: void * malloc(size_t size); 用malloc申请一块长度为length的整数类型的内存,程序如下: int *p = (int *) m转载 2008-04-16 15:16:00 · 348 阅读 · 0 评论 -
明晰C++内存分配的五种方法的区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。原创 2008-04-16 15:18:00 · 380 阅读 · 0 评论 -
浅谈C/C++内存泄漏及其检测工具(二)
检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存 后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那 些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve Maguire转载 2008-04-16 15:06:00 · 542 阅读 · 0 评论 -
浅谈C/C++内存泄漏及其检测工具(一)
对于一个c/c++程序员来说,内存泄 漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成转载 2008-04-16 15:03:00 · 463 阅读 · 0 评论 -
CL.exe的全部命令
CL.exe的全部命令/C:在预处理输出中保留注释语句/c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"/D:定义常量和宏,与源程序里的#define 有相同效果/E:预处理C、C++源文件,将源文件中所有的预编译指令及宏展开,将注释去掉,然后将预处理器的输出拷贝至标准输出设备输出,并且在每个文件的开头和末尾加入#line/EH:指定编译器用何种异常处理模型/EP:同/E原创 2008-04-11 10:19:00 · 1015 阅读 · 0 评论 -
CORBA 入门
CORBA 是什么 公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象管理组织(Object Management Group)对应当今快速增长的软硬件的协同工作能力的要求而提出的方案。简而言之,CORBA 允许应用程序和其他的应用程序通讯,而不论他们在什么转载 2008-04-10 18:00:00 · 458 阅读 · 0 评论 -
POA简介
1 POA简介 (1)POA结构 每一个POA都要维护一个活动对象映射(Active Object Map),它包含一个个对应于服务的对象ID,活动对象映射是一张将激活对象映射到相应服务的表。对象ID是一个由POA和用户提供的实现使用的一个值,用来标识一个特定的抽象的CORBA对象。对象ID的值可能由POA或实现来赋值和管理,对象ID的值由引用封装并对客户方隐藏。对象ID没有标准格式,它们被P原创 2008-04-11 10:18:00 · 6145 阅读 · 0 评论 -
nmake使用的makefile
nmake使用的makefile描述块描述块是后面可跟有命令块的依赖项行:targets... : dependents...commands...依赖项行指定一或多个目标以及零或多个依赖项。目标必须位于行首。用冒号 (:) 将目标和依赖项分开;允许使用空格或制表符。若要拆分行,请在目标或依赖项后面使用反斜杠 (/ )。如果目标不存在、目标的时间戳比依赖项早或者目标是伪目标,则 NMAKE 执行命原创 2008-04-11 10:20:00 · 3332 阅读 · 0 评论 -
C++中动态内存分配引发问题的解决方案(二)
首先,大家要知道,C++类有以下这些极为重要的函数: 一:复制构造函数。 二:赋值函数。 我们先来讲复制构造函数。什么是复制构造函数呢?比如,我们可以写下这样的代码:Wrong test1(test2);这是进行初始化。我们知道,初始化对象要用构造函数。可这儿呢?按理说,应该有声明为这样的构造函数:Wrong(const Wrong &);可是,我们并没有定义这个构造函数呀?答案是,C++转载 2008-04-16 15:10:00 · 431 阅读 · 0 评论 -
菜鸟也能搞定C++内存泄漏
C++内存分配与释放均由用户代码自行控制,灵活的机制有如潘多拉之盒,即让程序员 有了更广的发挥空间,也产生了代代相传的内存泄漏问题。对于新手来说,最常犯的错误就是new出一个对象而忘记释放,对于一般小应用程序来说,一点内存空 间不算什么。但是当内存泄漏问题出现在需要24小时运行的平台类程序上的时候,将会使系统可用内存飞速减少,最后耗尽系统资源,导致系统崩溃。 所以学会如何防止并检查内存泄漏,是转载 2008-04-16 15:12:00 · 341 阅读 · 0 评论 -
浅谈C++中的内存管理(二)
这里还要说一件事情,就是在第一个程序当 中,无论是debug版本还是release版本。执行完那个if语句以后,系统都是不会真正的把l清除掉,l只是k的一个别名。上面的程序是这样写的, 用了*j=&i这样一句负值语句,而别名在MSDN中的解释与引用是相同的,所以也可以这样理解,int i=10; int &j=i;与上面的相同。不要去想上面这些程序了,大家再看看下面这个。转载 2008-04-16 15:20:00 · 397 阅读 · 0 评论 -
控制C++的内存分配
在嵌入式系统中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。 具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。 这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注意在嵌入式C++环境中的因果关系。并且,在嵌入式系统转载 2008-04-16 15:20:00 · 516 阅读 · 0 评论 -
浅谈C++中的内存管理(一)
摘要: 大家都知道变量的生存周期这个概念,可是有的时候变量生存周期已经结束,但是所分配的那块内存空间还是存在的。文章举了四个不同的例子,来说明这其中的原因。 前言: 前一段时间在一个好友的的博客论 坛上看到他学习C++时遇到的一小点问题,是关于C++中最基本的内存分配方面的。其实对于内存这东西,除了知道我自己用的是256M的内存以外,我也不 太清楚他到底里面是怎么工作的。看了大师们的转载 2008-04-16 15:19:00 · 452 阅读 · 0 评论