C/C++
文章平均质量分 65
hangyuanbiyesheng
这个作者很懒,什么都没留下…
展开
-
malloc/free 和 new /delete 的区别(转自 forestassure 的 Blog)
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务转载 2011-06-30 10:59:00 · 485 阅读 · 0 评论 -
堆与栈区别(转自welcome_ck的blog,有删改)
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。 除此之外,在C++中还有自由存储区、全局/转载 2011-06-30 10:08:00 · 507 阅读 · 0 评论 -
STL vector list deque区别与实现
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一转载 2011-10-15 21:42:15 · 558 阅读 · 0 评论