![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 64
littleway
这个作者很懒,什么都没留下…
展开
-
关于visual leak detector的使用
1.2.内存泄露的检测(1)利用内存泄露检测工具常用的有 BoundsCheaker、Deleaker、Visual Leak Detector等,工具毕竟熟能生巧,用户选择先自己喜欢的一款去用即可。BoundsChecker没有找到win7下支持VS2005的破解版,用盗版的伤不起啊。(2)使用Deleaker(本文采用vs2005)进行内存泄露检查如下图转载 2013-03-31 10:40:00 · 2118 阅读 · 0 评论 -
二维数组、数组指针、指针数组和指针的指针分析(另数组的内存分配方式)
在这里一共有四个概念:二维数组、数组指针、指针数组和指针的指针。下面我们一个个来进行分析。二维数组:int a[3][3] = {1,2,3,4,5,6,7,8,9};这个概念应该都很清楚,用起来也都很顺手,a表示二维数组名,同时也是一个指向a[0][0]地址的指针,改地址不可变,也可以理解成a是一个const指针,也就是a指向的地址是不能改变的,但是a指向地址的值是可以被更改的。原创 2014-03-10 10:50:11 · 1187 阅读 · 0 评论 -
进程/线程同步互斥与通信及socket传输
在这里结合做过的一些项目对jinc原创 2014-04-19 22:23:41 · 1186 阅读 · 2 评论 -
浅谈C++虚继承及虚基类表
上篇提到了虚函数表,在对其有一定了解之后继续深入理解C++中对象的内存布局原创 2014-04-06 20:27:22 · 2332 阅读 · 0 评论 -
浅谈C++虚函数表
不罗嗦C++直接进入主题。虚函数表原创 2014-04-06 16:01:53 · 531 阅读 · 0 评论 -
O(lgn)的三种排序,快速排序、归并排序、堆排序
daimafusvoid swap(int *vec, int i, int j){ int tmp = vec[i]; vec[i] = vec[j]; vec[j] = tmp;}void quicksort(int *vec, int beg, int end){ if(beg < end) { //每次都取最后一位数当比较数; int num原创 2014-05-15 20:35:22 · 635 阅读 · 0 评论 -
map和hash_map的比较
map和hash_maphash_map 查找速度会比map快,而且查找速度基本和数据数据量大小,属于常数级别;而map的查找速度是log(n)级别。并不一定常数就比log(n)小,hash还有hash函数的耗时,明白了吧,如果你考虑效率,特别是在元素达到一定数量级时,考虑考虑hash_map。但若你对内存使用特别严格,希望程序尽可能少消耗内存,那么一定要小心,hash转载 2014-05-17 16:13:52 · 549 阅读 · 0 评论 -
LRU的C++实现
实现为Leetcode上的LRU Cache。原创 2014-04-26 16:55:48 · 4647 阅读 · 0 评论 -
字符串转数字atoi的重新编写及注意事项
字符串转数字看似很简单,其实很多细节需要把握,这里涉及到边界检测,原创 2014-05-14 19:44:38 · 962 阅读 · 0 评论 -
malloc和new的区别,new和operator new的区别,分配器介绍
首先先解释几个概念:fenk原创 2014-05-30 21:27:37 · 1076 阅读 · 0 评论 -
Float 内存存储详解
定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。计算机系统采纳了所谓的浮点数表达方式。这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa也叫有效数字 ),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。浮点数利用指数达到了浮动小数点的效果,从而可以灵活转载 2014-03-13 10:36:58 · 485 阅读 · 0 评论 -
和链表有关的算法题(C++)
链表操作在面试中经常出现,这一方面考察了对指针的使用,以下整理了一些关于链表的面试题以及注意事项。首先对单链表进行定义。struct ListNode{ int val; ListNode *next;};问题1:输入一个单向链表,输出该链表中倒数第k个结点先第一个指针向前走k,然后第二个指针此时和第一个指针一起走即可。情况:pHead=NULL、链表小于原创 2014-02-19 16:25:31 · 730 阅读 · 0 评论 -
按值传递和引用传递
先说一句自己真是孤陋寡闻阿,到现在连按值传递和引用传递都不知道,感谢马大神!在写c程序设计中遇到一个问题,相当于如下问题:void s(int i);int _tmain(int argc, _TCHAR* argv[]){ int i = 0;; s(i); cout<<i<<endl; return 0;}void s(int i){ i += 5;}输出原创 2013-03-25 20:43:44 · 524 阅读 · 0 评论 -
静态变量和外部变量
static和extern是两种可以全局作用的变量。在这里,先说明“声明”和“定义”的区别。如果是定义,那么编译器会为该分量分配内存空间,但是对于声明来说则不会分配。静态变量的定义是伴随着声明的,也就是说不管在声明的时候有没有对变量进行初始化,静态变量都会进行初始化,缺省值为0;然而外部变量的声明和定义是分开的,并且可以在多个文件中多次声明同一个变量(要注意,外部变量的定义一定要在函数体外原创 2013-03-19 21:37:35 · 1711 阅读 · 0 评论 -
字符编码方式
在学习命令行参数的时候发现了一个问题,argv[]中的字符串无法正确输出,每次都只能输出第一个字符。在马大神的尝试下,更改了入口函数,发现问题解决了。原函数如下:int _tmain(int argc, _TCHAR* argv[])修改后如下:int main(int argc, char* argv[])首先对函数的第二个参数进行说明:Windows原创 2013-04-22 20:05:59 · 649 阅读 · 0 评论 -
关于字符串指针指向内容不能修改的问题
char *s = "sjdkjfl";s[3] = 'd';上面的程序在编译的时候出现问题,而当改成下面数组样式的时候则通过了编译。char s[] = "sjdkjfl";*(s+2) = 'd';在水源上提问,有大神回答char * s = "sjdkjfl";在内存空间里是分配到“只读内存区”char a[] = "sjdkjfl";则是以堆栈的形式原创 2013-03-19 22:01:30 · 2152 阅读 · 0 评论 -
内存以及和堆栈有关的问题
一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,转载 2014-01-06 11:46:30 · 492 阅读 · 0 评论 -
C++中异常处理与if判断的问题
异常情况也就是对情况是否异常做出的判断,那么异常处理和if判断语句有什么区别呢?各有什么好处?if-else 方式的好处在于更贴近与逻辑思维,性能优于Exception。相对于Exception,其缺点是,不适合OOP,语义不明显,不易于错误错误跟踪或错误提示较少,并且类型比较单一。exception方法的好处在于是业务逻辑和异常处理分离(代码相对清晰),try中处理业务,catch中原创 2014-01-09 11:10:43 · 1645 阅读 · 0 评论 -
非IT行业和互联网企
非IT行业和互联网企业各有优势。如果你想在非IT行业做,现在就要选好行业,以后跳槽也只能在同行业内跳。比如顺丰是 国内物流行业,以后即使跳槽,也只能跳到 物流行业。楼主自己的重点要放在业务方面,因为非IT行业基本都用非常成熟的技术,不会要你自己研发什么的。非IT行业开始的工资不太高,但等你把业务弄得非常熟悉,能够用你的技术把公司的方方面面都考虑到,你的工资不是一般的高。这就是所谓的转载 2013-11-01 08:41:13 · 611 阅读 · 0 评论 -
指针和引用的区别(附const指针)
先谈一谈const指针有关的内容。主要有两种:1、指向const类型的指针(指针可以指向其他对象,但是指针指向的对象必须是const,不能被修改)2、const指针(指针指向的对象的内容可以被修改,但是指针不能指向其他的对象)表达分别是:1、const int* p;(推荐), int const* p;(两种都可以表示指向const类型的指针,推荐第一个表达方式)2、in原创 2013-10-31 14:40:29 · 772 阅读 · 0 评论 -
智能指针scoped_ptr,shared_ptr,weak_ptr和auto_ptr的使用
通常在类中含有指针的话,需要对赋值操作符和拷贝构造函数进行重新定义,然而这些会引起一些歧义和不便,简单来说,赋值操作符是将原内存区的地址赋给新对象还是令新对象开辟新的内存区,再把原内存区的值赋值到新内存区呢?如果是只把地址赋给新对象,那什么时候释放内存?由于指针的这些问题,类对于指针的处理方式有以下三种:1、常规指针行为。该方式直接将地址赋给新对象,不会对内存的释放进行控制,但是无需特殊的原创 2014-02-18 21:32:42 · 577 阅读 · 0 评论 -
二分查找中的编程小问题
二分查找是很常用的一个小技巧,思想很简单,dansh原创 2014-05-08 12:25:09 · 713 阅读 · 0 评论