C/C++问题
robin1115
篮球和WAR3,羽毛球、喝点小酒
展开
-
malloc()与 alloc()区别(转)
C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分转载 2009-08-13 09:34:00 · 449 阅读 · 0 评论 -
通用MAKEfile模板
Makefile 模板 # 下面的变量可以在shell 的环境变量里面指定。 # 也可以象下面这样在 Makefile 里面指定。 # CC=gcc # 编译器 # CFLAGS=-Wa转载 2011-08-04 00:11:35 · 386 阅读 · 0 评论 -
make file 样例
CC = g++CFLAG = -o2 -Wall -g -w -ggdb #警告提示,可以产生调试文件LIB_FLAG = -L/usr/local/lib -L./lib INCLUDE = -I./include -I/usr/local/include/opencv/M原创 2011-07-24 10:45:07 · 614 阅读 · 0 评论 -
数组的初始化--调试和运行
对于数组初始化问题,很多时候我都是做了,无论是静态开辟的还是动态开辟的,基本在开辟之后都进行了初始化,前两天在拿到一个别人的方法进行调用的时候,就在之前的基础上面改了下风格,比如变量和数组的初始化等等,但犯了如下这个错误:其中一段是int *a = NULL;a = new int[XXXX];memset(a, 0, XXXX); 本来应该写成 memset(a, 0, XX原创 2010-01-12 09:25:00 · 436 阅读 · 0 评论 -
恐怖的数组越界错误···
通常情况下我们谈到数组越界或者是野指针的错误问题,总是像书中说的那样,那样会带来非常非常严重的错误,甚至崩溃。是的,大家几乎看到所有书中的说明时候可能也还是一晃眼就过去了,自从这两天被这个错误折磨到了之后我才深深的体会到了这句话,呵呵。我的体会是错误并不可怕,调试和找到这个错误比较可怕。。。。。 情况是这样的,由于需求原因对于读进来的数据是变长的,于是对于变长的数据原创 2009-11-20 11:27:00 · 630 阅读 · 0 评论 -
使用MFC搜索当前目录下所存在的某种文件,将文件名(路径等)添加到下拉框中,返回文件个数,部分关键代码。。
//搜索当前目录下所存在的配置文件,返回文件个数int CNewsPaperDlg::Find_special_File(LPCTSTR pszPath, //查找起始路径 LPCTSTR pszExt, //文件扩展名 BOOL include_subDirectory, //搜索子目录标志 CComboBox *pBox) //列表{ /原创 2009-08-27 16:06:00 · 2409 阅读 · 0 评论 -
C/C++经典问题及自己所遇到的部分问题
1.求下面函数的返回值(微软)int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。2. 什么是“引用”?申明和转载 2009-08-27 15:59:00 · 714 阅读 · 0 评论 -
extern 详细说明(摘自网上)
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析:原创 2009-08-27 15:46:00 · 359 阅读 · 0 评论 -
VC6++和VS2003/2005下的DOXYGEN注释宏及其配置使用环境
需要环境:DOXYGEN, graphviz, HHW。。。配置环境GOOGLE上搜一下有很多很多,我这里给大家共享下我结合网上的一些再加上自己修改BUG和添加部分功能之后的注释宏:PS:函数注释的时候如果函数头部超过一行时,则选中函数头部然后点“函数注释宏”,就可以了。。 直接上宏了: --------------------------------------------原创 2009-08-26 15:58:00 · 1574 阅读 · 0 评论 -
RETURN前注意释放内存,初始化。。。
很多时候开辟和释放都是成对的,这样是为了避免产生内存泄漏,还有一种情况下容易导致这种错误,就是程序中某些异常控制中,当出现类似于文件读写打不开的时候,直接RETURN,而忽略了前面动态开辟的 内存,一般情况下,正常下退出时都还是比较能记得释放。。。 一定要注意在异常发生后,RETURN前也要进行释放。。。否则同样会产生内存泄漏! 其次就是在开辟内存之后应该记得初始化新开辟的空间(对原创 2009-08-26 15:52:00 · 1187 阅读 · 1 评论 -
多线程处理
由于最近再处理一些图像的算法中涉及到效率和速度问题,改进了半天发现貌似不好搞了。。于是空了的时候随便到处看看,发现了多线 程可能会有点作用。。以前虽然学习过,但基本都是书上的例子那种方式运行。。。MAIN THREAD RUN....SUBTHREAD RUN....交替的RUN,就根本没有真实的使用过,如是就在网上搜了些资料,以供自己随时学习记录。。 A、我首先得搞清楚原创 2009-08-18 12:00:00 · 606 阅读 · 0 评论 -
OPENCV 1.1+VC6.0使用时出现的恶心问题--应用程序正常初始化(0xc0150002)失败
今天上午没分配新任务还,我就自己搞了下OPENCV和MFC的联合使用,再OPENCV的网站上看到了一个使用CANNY检测的例子,其实以前对于图像处理库我自己也做了一个底层的DIB,但想可能对于图像类型的兼容问题,例如PNG,TIFF等还没完备,以及使用的时候同事未必会接受我的库,因此就打算采用OPENCV的一些底层的应用。。不料在使用的时候发现没法和例子中一样运行,GOOGLE了一下之后发现是原创 2009-08-17 14:35:00 · 2689 阅读 · 3 评论 -
delete和delete[] 的区别
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。楼主的这个问题提得很好。很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。对于 (1),上面提供转载 2009-08-13 09:56:00 · 382 阅读 · 0 评论 -
Linux下线程池
http://blog.csdn.net/hinyunsin/article/details/6650879#comments转载 2011-08-04 00:07:55 · 362 阅读 · 0 评论