C/C++的那些事儿
Webols
这个作者很懒,什么都没留下…
展开
-
关于malloc和new动态分配内存的困惑
在写一个程序代码分析程序时,运用的是C语言,其中一个函数,重复调用时malloc分配不了内存,可用new替换了就可以了,弄不明白什么原因。//分配一个函数;pFuncPro AddFunc(const char * name){ //为什么重复调用AddFunc函数malloc分配不了内存,而new可以; //pFuncPro func = (pFuncPro)malloc(sizeof(原创 2011-07-03 00:31:21 · 493 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
Windows Socket五种I/O模型——代码全攻略如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I转载 2011-09-25 00:18:33 · 881 阅读 · 0 评论 -
用GDB调试程序
本文章转自http://blog.csdn.net/haoel/article/details/2879感谢原文作者的详细讲解,好文章就要分享给大家。用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发转载 2012-03-14 17:26:59 · 321 阅读 · 0 评论 -
Linux 平台相关代码的 C++ 解决方案
转载自http://www.ibm.com/developerworks/cn/linux/l-cn-cppoverlinux/index.htmlLinux 平台相关代码带来的问题目前市场上存在着许多不同的 Linux 平台(例如:RedHat, Ubuntu, Suse 等),各大厂商和社区都在针对自己支持的平台进行优化,为使用者带来诸多方便的同时也对软件研发人员在进行编码时带转载 2012-04-30 14:18:02 · 496 阅读 · 0 评论 -
Linux free命令详解
关于怎么观察内存使用问题,free是很好用的一个命令。参数讲解bash-3.00$ freetotal used free shared buffers cachedMem: 1572988 1509260 63728 0 62800 277888-/+ buffers/c转载 2012-04-19 14:39:53 · 434 阅读 · 0 评论 -
Why C++ ? 王者归来
转载自http://coolshell.cn/articles/6548.html因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文《2012 不宜进入的三个技术点》ActionScript,Thread 和 C++, C++争议的争议最大。(要我说,.NET比C++更需要慎重进入,呵)。我就在这里回复一下这个问题吧。转载 2012-04-20 01:36:45 · 390 阅读 · 0 评论 -
C++著名程序库的比较和学习经验
1、C++各大有名库的介绍——C++标准库2、C++各大有名库的介绍——准标准库Boost3、C++各大有名库的介绍——GUI4、C++各大有名库的介绍——网络通信5、C++各大有名库的介绍——XML6、C++各大有名库的介绍——科学计算7、C++各大有名库的介绍——游戏开发8、C++各大有名库的介绍——线程9、C++各大有名库的介绍——序列化10、C++各大有转载 2012-04-20 13:22:27 · 426 阅读 · 0 评论 -
C++ TinyXml操作
前言TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系转载 2012-04-19 15:03:17 · 488 阅读 · 0 评论 -
C++ JsonCpp 使用
前言JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。本文选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库转载 2012-04-19 15:09:26 · 473 阅读 · 0 评论 -
哈希链表实现的LRU缓存算法
在做三角网格文件转换的时候需要对从文件中读取的顶点坐标进行缓存,于是索性做了一个哈希缓存以提高访问效率,同时以LRU原则在缓存满的情况下清楚缓存中的单元。在hash表中我用了最简单的取摸的方法,由于原顶点有一个索引而且这种索引连续,所以取摸的方法已经可以达到平均散列。在处理碰撞的时候我使用了链表,而所有在缓存中的单元都按放入缓存的时间串成一个链表,这样在清除单元的时候选择队尾的元素进行清除即可。原创 2012-09-04 09:57:17 · 1385 阅读 · 0 评论 -
C程序内存结构
一个32位的运行在保护模式下应用程序,无论是Linux 还是Windows 都给它分配一个4GB的平坦的内存空间一个运行着的c程序所占用的内存空间分为:代码区 初始化数据区 未初始化数据区 堆区 和 栈区 在地址上从高位到地位为(高位)栈区堆区未初始化数据区(即BBS)数据区代码区(低位)栈区存放函数的参数值、局部变量的值 ,由编译器转载 2012-10-13 09:25:18 · 678 阅读 · 0 评论 -
Linux core 文件介绍
Linux core 文件介绍1. core文件的简单介绍在一个程序崩溃时,它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。2. 开启或关闭core文件的生成用以下命令来阻止系统生成core文件:ulimit -c 0下面的命令可以检查生成core文件的选项是否打开:ulimit -转载 2012-10-13 21:00:13 · 544 阅读 · 0 评论 -
用DirectShow实现QQ的音视频聊天功能
用DirectShow实现QQ的音视频聊天功能当下比较流行的即时通信工具,比如MSN,QQ等都实现了视音频的功能,通过视频,音频,我们可以更好的和朋友通过网络进行沟通,本文通过DirectShow技术模拟QQ实现了视频和音频的采集,传输,基本实现了QQ的视音频聊天的功能。转载 2011-09-24 23:58:47 · 600 阅读 · 0 评论 -
基于DirectShow的MPEG-4视频传输系统的研究与实现
基于DirectShow的MPEG-4视频传输系统的研究与实现本文简单介绍了DirectShow技术,研究了利用DirectShow实现视频采集、压缩和网络传输技术。并利用第三方提供的编解码器实现了MPEG-4视频数据的网络传输系统,在该系统中利用RTP协议进行视频数据传输,转载 2011-09-25 00:01:10 · 957 阅读 · 0 评论 -
malloc函数动态分配内存的策略
原型:extern void *malloc(unsigned int num_bytes);头文件:在TC2.0中可以用malloc.h或 alloc.h (注意:alloc.h 与 malloc.h 的内容是完全一致的),而在Visual C++6.0中可以用malloc.h或者stdlib.h。功能:分配长度为num_bytes字节的内存块返回值:如果分配成功则返回指向被分配内存的指针,否则原创 2011-07-03 00:39:49 · 746 阅读 · 0 评论 -
深度剖析C和C++的复杂类型声明
深度剖析C和C++的复杂类型声明曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typ转载 2011-07-23 11:02:38 · 382 阅读 · 0 评论 -
指针和引用的区别
指针和引用的区别(1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. String & rs = strin转载 2011-07-23 11:18:37 · 332 阅读 · 0 评论 -
C++0X中值得关注的几大变化
声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www转载 2011-09-03 10:34:29 · 602 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代转载 2011-08-07 00:29:29 · 717 阅读 · 0 评论 -
C++中extern “C”含义深层探索
C++中extern “C”含义深层探索时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" { #endif//一段代码#ifdef __cplusplus } #endif转载 2011-08-07 00:04:21 · 502 阅读 · 0 评论 -
C语言文件操作函数大全
C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标转载 2011-08-07 00:06:08 · 554 阅读 · 0 评论 -
C++中获得CPU高精度时间戳
对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。 在Windows平台下,常用的转载 2011-09-10 00:45:31 · 1391 阅读 · 0 评论 -
C/C++ 程序设计员应聘常见面试试题深入剖析
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strc转载 2011-09-10 11:27:03 · 405 阅读 · 0 评论 -
c++实现文件传输解析
实现:枚举磁盘,枚举目录,获取文件信息上传文件,下载文件,执行文件,创建目录,删除目录等传输控制结构要实现客户端与服务端的通信,设计一个合理的传输控制结构,会使后面的工作轻松很多,为了使代码易读首先对要使用的命令进行预定义其各个命令定义如下#defin转载 2011-09-03 10:36:56 · 2183 阅读 · 1 评论 -
同步控制中Mutex互斥器Critical Section 临界会话的区别
同步控制中Mutex互斥器Critical Section 临界会话的区别Win32的Mutex和Critical Seciton非常类似。但是他以牺牲速度来增加弹性。Mutex是核心对象Mutex 和Critical Section 的区别:锁住一个原创 2011-09-25 16:47:06 · 886 阅读 · 0 评论 -
《C++经验谈》(1)
在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时,总结起来可以从如下几点提高效率:l 并发l 异步l 缓存下面将我平常工作中遇到一些问题例举一二,其设计思想无非以上三点。1任务队列1.1 以生产者-消费者模型设计任务队列 生产者-消费者模型是人们非常熟悉的模型,比如在某个服务器程序中,当User数据被逻辑模块修转载 2012-09-24 21:50:58 · 444 阅读 · 0 评论