c/c++
文章平均质量分 73
zhangfulin_hwatop
这个作者很懒,什么都没留下…
展开
-
c/c++野指针
初次接触c/c++野指针概念是在自己面试的时候吧,当时知识面也很窄吧原因是,结果就是被pass了,再次遇到野指针的问题是在独自一人追踪自己的bug时,结果又是耗了我两天的时间. 该是总结的时候了,不想再糊糊涂涂的被这野指针问题闹心了,也是把自己总结的东西拿出来晒晒,如果有不妥之处还希望各位高人多多指点。 首先提个问题: a:什么是野指针?原创 2012-06-20 00:35:43 · 1001 阅读 · 0 评论 -
c++异常处理机制
下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h" #include #include #include // 内存泄露检测机制 #define _CRTDBG_MAP_ALLOC #ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__,转载 2012-11-19 18:02:19 · 324 阅读 · 0 评论 -
C++中delete, new以及new [], delete[]操作符内幕
人们有时好像喜欢故意使C++语言的术语难以理解。比如说new操作符(new operator)和operator new的区别。 当你写这样的代码: string *ps = new string("Memory Management"); 你使用的new是new操作符。这个操作符就象sizeof一样是语言内置的,你不能改变它的含义,它的功能总是一样的。它要完成的功能转载 2012-11-20 18:00:50 · 325 阅读 · 0 评论 -
设计模式C++描述----11.组合(Composite)模式
一. 举例这个例子是书上的,假设有一个公司的组结结构如下:它的结构很像一棵树,其中人力资源部和财务部是没有子结点的,具体公司才有子结点。而且最关健的是,它的每一层结构很相似。代码实现如下:[cpp] view plaincopyprint?//公司类,提供接口 class Company { public:转载 2012-11-21 18:06:04 · 742 阅读 · 0 评论 -
GDB调试精粹
一、列文件清单list / l列出产生执行文件的源代码的一部分[cpp] view plaincopyprint?//列出 line1 到 line2 行之间的源代码 (gdb) list line1, line2 //输出从上次调用list命令开始往后的10行程序代码 (gdb) list //输出第 n 行附近的10行程序代码转载 2012-11-21 17:45:16 · 326 阅读 · 0 评论 -
Gcc 编译处理
一. Gcc 编译处理过程下面以 helloworld 程序为例去进行解释过程:其中hello.c的内容如下:[cpp] view plaincopyprint?#include int main() { printf("hello world\n"); } #includeint main(){转载 2012-11-21 17:47:42 · 338 阅读 · 0 评论 -
程序在内存中存储详情(Text、Data、BSS、Heap、Stack....)
char *string = "Hello World";int iSize;char *fun(void){ char *p; iSize = 8; p = malloc(iSize); return p;}存放的位置(相同的颜色对应)Text段:上面标记为红色的部分(还包括整个fun函数,由于下边需要,转载 2012-11-21 17:52:05 · 973 阅读 · 0 评论 -
深刻理解Linux进程间通信(IPC)
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间转载 2013-01-25 17:41:26 · 299 阅读 · 0 评论 -
线程属性介绍(二)
线程属性pthread_attr_t简介 2012-06-23 22:21:34| 分类: C和C++语言 | 标签:pthread |字号 订阅本文编辑整理自: http://hi.baidu.com/7828058/blog/item/256e16decd1a385e94ee3784.htmlhttp://www.ibm.com/deve转载 2013-02-03 17:22:07 · 533 阅读 · 0 评论 -
BSTR与其它字符串类型转换
常用字符串件的类型转换。 FromToSample字符串常量BSTRRight:BSTR bs = ::SysAllocString(_T("Test string"));…::SysFreeString();Wrong:BSTR bs = _T("Test string"); //ERROR转载 2013-02-01 17:56:18 · 372 阅读 · 0 评论 -
C++ Decorator Design Mode
概要又是一种比较常见也比较常用的模式。系统模块经常需要进行功能上的扩展,比如下面这种形式的结构,当需要扩展新Function时,通常会通过继承追加新类来实现功能的扩展。但是如果我们不是扩展一个新功能的对象,而只是对所有现有的每种功能类的处理进行扩展时,我们应该怎么做?Decorator模式可以很好的解决这类问题。目的为一系列对象动态追加(或删除)额外的功能,转载 2012-11-19 10:15:54 · 651 阅读 · 0 评论 -
memcpy 与 strcpy
memcpy() :拷贝内存内容 定义函数:void *memcpy(void *dest,const void*src,size_t n); 函数说明:memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上,与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束符‘\0’而结束. 今天原创 2012-11-14 18:19:42 · 821 阅读 · 0 评论 -
C/C++面试之算法系列--如何实现用更少的空间表示英文字母(a ~ z)构成char A[n]字符串
×××××××××××××××××××××××××××××××ד如何实现用更少的空间表示英文字母(a ~ z)构成char A[n]字符串” ×××××××××××××××××××××××××××××××× 在嵌入式的通信协议开发过程中由于通信实时性等因素要尽量缩短传输报文的长度,即每一个字节的各位都应该重复利用上;但是在实际的传输过程中,由于传输报文的某些特性,可以考虑将字转载 2012-11-11 17:13:50 · 2799 阅读 · 0 评论 -
c++ 拷贝构造函数
拷贝构造函数: 是一种特殊的构造函数,它由编译器来调用来完成一些基于同一类的其他对象的构建及初始化。 什么时候要调用拷贝构造函数(复制构造函数)? 1) 一个对象作为函数参数,以值传递的方式传入函数体. 2) 一个对象作为函数返回值,以值传递的方式从函数返回。 3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化)。原创 2012-06-22 14:32:47 · 379 阅读 · 0 评论 -
单链表
1:给出一个单链表,不知道节点N的值,怎么只遍历一次就可以求出中间节点,写出算法。 解析:设立两个指针比如*p和*q,p每次移动两个位置,即p=p->next->next,q每次移动一个位置,即q=q->next,当p到达最后一个节点时,q就是中间节点了。 void searchmid(node *head,node *mid) { node *p;原创 2012-07-12 13:55:43 · 419 阅读 · 0 评论 -
容器
第1章 容器第1条:慎重选择容器类型。标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一“重型”string。非标准的关联容器hash_set、hase_multiset、hash_map转载 2012-07-15 14:52:28 · 875 阅读 · 0 评论 -
linux c语言连接MySQL数据库
一 包括的头文件 (a) 在"xx.c"源文件里首先应包括头文件 (b) 头文件在/usr/include目录下.(centos6.0操作系统下进进行的) (c) 如果/usr/inlcude目录下没有mysql目录那就是还需要安装一些软件包了。 yum search mysql 查找相关的软件包。原创 2012-07-26 13:47:07 · 637 阅读 · 0 评论 -
MySql数据库的安装和使用
一 安装MySQL 1 下载MySQL的安装文件 安装MySQL需要两个文件: (a) MySQL-server-5.5.25a-1.linux2.6.i386.rpm (b) MySQL-client-5.5.25a-1.linux2.6.i386.rpm 下载地址为:http转载 2012-07-25 16:58:02 · 325 阅读 · 0 评论 -
MySQL 的ALTER 语句
修改表 使用ALTER TABLE语句追加,修改,或删除列的语法. (1) 追加列 ALTER TABLE tablename ADD new_field_name field_type; (2) 删除列 ALTER TABLE ta原创 2012-08-01 11:14:02 · 278 阅读 · 0 评论 -
MySQL 增加,更新,删除,查找数据
INSERT语句 (增加数据) Insert into table_name(field1,field2,field3.....) values(field1_value,field2_value,field_value........); UPDATE语句 (更新数据) UPDATE table_name SET field_na原创 2012-08-01 14:49:01 · 356 阅读 · 0 评论 -
H264关于RTP协议的实现
H264关于RTP协议的实现对于H.264视频的实时传输应用来说,TCP的重传机制引入的时延和抖动是无法容忍的,因此我们采用UDP传输协议。但是UDP协议本身是面向无连接的,不能提供质量保证。而基于UDP之上的高层协议RTP/RTCP可以一起提供流量控制和拥塞控制服务。TAG: H264 RTP RFC3984 完整的C/S架构的基于RTP转载 2012-11-13 14:33:16 · 682 阅读 · 0 评论 -
线程与进程的区别
学习电脑和编程语言就会遇到进程和线程,初学者往往会在此陷入迷茫和纠结中。其实弄清这两个概念不是很难。从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。方法/步骤进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活转载 2013-02-25 17:13:49 · 450 阅读 · 0 评论