C&C++
遨游网络huster
这个作者很懒,什么都没留下…
展开
-
转载:auto_ptr解析
原文网址:http://www.cppblog.com/SmartPtr/archive/2007/07/05/27549.htmlauto_ptr解析By SmartPtr(http://www.cppblog.com/SmartPtr/)auto_ptr是当前C++标准库中提供的一种智能指针,或许相对于boost库提供的一系列眼花缭乱的智能指针, 或许相对于Loki中那转载 2013-12-30 18:50:12 · 624 阅读 · 0 评论 -
C++:派生类的默认构造函数和拷贝构造函数调用基类构造函数的机制(含程序验证)
C++:派生类的默认构造函数和拷贝构造函数调用基类构造函数的机制(含程序验证) 1、如果基类定义了不带参数的默认构造函数,则编译器为派生类自动生成的默认构造函数会调用基类的默认构造函数。 2、如果基类定义了拷贝构造函数,则编译器为派生类自动生成的拷贝构造函数同样会调用基类的拷贝构造函数。 3、如果基类定义了带参数的构造函数,派生类没有定义任何带参数的构造函数,则不能直接调用基类的带参构造函数,程序编译不通过。原创 2015-01-21 10:53:42 · 5704 阅读 · 0 评论 -
c++ 虚函数的实现机制:笔记
1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public: virtual void f(); virtual void g();private转载 2014-11-24 21:24:20 · 664 阅读 · 0 评论 -
调用malloc()函数之后,内核发生了什么?附malloc()和free()实现的源代码
我们经常会在C程序中调用malloc()函数动态分配一块连续的内存空间并使用它们。那么,这些用户空间发生的事会引发内核空间什么样的反应呢? malloc()是一个API,这个函数在库中封装了系统调用brk。因此如果调用malloc,那么首先会引发brk系统调用执行的过程。brk()在内核中对应的系统调用服务例程为SYSCALL_DEFINE1(brk, unsigned long, brk),参数brk用来指定heap段新的结束地址,也就是重新指定mm_struct结构中的brk字段。 br原创 2014-10-08 22:31:19 · 3081 阅读 · 2 评论 -
Linux C 函数手册
今天无意中看到了Linux C函数手册,讲的非常详细原创 2014-07-25 10:22:53 · 663 阅读 · 0 评论 -
C++写日志源代码分析,可实现根据日期自动创建文件夹、日志分类、文件大小控制等
最近在做一个项目,原创 2014-07-22 15:07:36 · 2785 阅读 · 0 评论 -
malloc()函数和free()函数源代码
原文地址:http://blog.csdn.net/lxmky/article/details/6909060#include "types.h"#include "stddef.h"#include "string.h"/* Imported functions */extern void prom_printf (char *fmt, ...);static char转载 2013-12-14 19:44:47 · 9656 阅读 · 4 评论 -
strlen和sizeof的区别
一、sizeof sizeof(...)是运算符,而不是一个函数。 一个简单的例子:int a;cout 在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的转载 2014-03-06 10:51:46 · 808 阅读 · 0 评论 -
STL系列之四 heap 堆
原文地址:http://blog.csdn.net/morewindows/article/details/6967409下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随转载 2014-03-06 16:30:48 · 836 阅读 · 0 评论 -
fscanf()函数详解
以前解析有规律的文件的时候要么用正则表达式,要么就是傻傻的自己写程序来解析有规律的文件。今天突然发现c的库函数中有一个现成的可以解析有规律的文件的函数,就是fscanf()函数。哎 以前自己做了这么多无用功,在这里详细解析一下fscanf函数:fscanf()函数(有点像正则表达式):功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。转载 2014-01-18 19:07:10 · 1181 阅读 · 0 评论 -
C++中vector 的用法
原文地址:http://blog.csdn.net/edify/article/details/4035243 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。转载 2013-12-21 18:33:32 · 890 阅读 · 0 评论 -
C++:多维数组的动态分配(new)和释放(delete)
今天在编程的时候遇到了二维数组动态分配的问题,在网上看到一篇文章,在此和大家共享。 原文地址:http://www.cnblogs.com/Sylla-Zhang/archive/2012/10/08/2715300.html 对于简单的一维数组动态内存分配和释放,相信大家都是知道的,不过还是举个例子吧:1 int *array1D;2 //假定数组长转载 2013-12-21 22:05:56 · 1190 阅读 · 0 评论 -
for循环语句头的执行顺序
原文地址:http://blog.csdn.net/fengyunjh/article/details/6161343 for循环语句头有3个部分:初始化、判读条件、一个表达式有3个疑惑:1、第一次例如初始化i=0,是否还执行后面的i++或++i?第一次先初始化,然后判断,i++就不执行了2、第一次完了以后,初始化这句就不用了,是先执行i++还是限制性判断语句呢?先执行转载 2013-12-16 17:48:15 · 990 阅读 · 0 评论 -
C++内存泄露和检测
C++中的内存泄露一般指堆中的内存泄露。堆内存是我们手动malloc/realloc/new申请的,程序不会自动回收,需要调用free或delete手动释放,否则就会造成内存泄露。内存泄露其实还应该包括系统资料的泄露,比如socket连接等,使用完后也要释放。内存泄露的原因:总结下来,内存泄露大概有一下几个原因:1、编码错误:malloc、realloc、new申请的内存在堆上,需要手转载 2015-03-07 11:01:18 · 733 阅读 · 0 评论