![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 85
写代码的柯长
Do the impossible.
See the invisible.
Raw! Raw!
Fight the power.
展开
-
C++的& 与 *区别(从递归上解释)
在刷leetcode时候看到一道题目,里面所使用到一个特殊的类型为TreeNode* &prevTreeNode表示一个树的结构体的类型,但是却取了* &,着实让人奇怪,因为这个原因,特地复习一下c++的引用& 关于c++的引用& 和*的资料,我觉得这篇博客中已经解释的相当清楚了,故在此放上这个博客的链接: http://www.cnblogs.com/Mr-xu/archive/2012/08原创 2017-09-25 18:47:52 · 377 阅读 · 0 评论 -
揭秘UNIX文件缓存(the buffer cache)(实战篇)
这篇博客基于上篇的the buffer cache理论篇,本人利用c++11的多线程机制实现了一个demo,并且由于在网上大多数博客针对双向链表的LRU实现并没有过多的考虑同步问题,特做此记录。 想要直接看项目代码,可以直接移步到我的github:https://github.com/HBKO/the_buffer_cache闲话少说,在这篇博客中你将看到以下内容: 好戏开始:先来展示一下原创 2017-11-01 01:29:52 · 654 阅读 · 0 评论 -
C++对象内存模型详解(基于GDB)
因为挺多内容的来自别人博客的学习,所以把相关博客的链接拉上: 虚函数解析:http://blog.csdn.net/haoel/article/details/1948051 C++ 对象的内存布局(上):http://blog.csdn.net/haoel/article/details/3081328 C++对象的内存布局(下):http://blog.csdn.net/haoel/ar...原创 2018-03-17 18:06:24 · 1413 阅读 · 0 评论 -
C++的引用和指针的区别(&和*)
这里,做个总结。 资料来源:https://www.zhihu.com/question/37608201 More Effective C++ 先来说一下指针的特点: 1.指针的本意是可以指向一块地址空间,这就意味着指针可以指向未初始化的内存空间。 2.这里我们来了解一下const在指针上的用法,我们这里要理解两个const,指向常量的指针以及常量指针,指向常量的指针说明我们不能通过这...转载 2018-03-18 11:31:37 · 4853 阅读 · 1 评论 -
C++的malloc和new的区别
1.对于C++而言,malloc是函数,但是new是运算符看似函数和运算符实现的功能都差不多。但是对于C++来说,new是运算符就意味着我们可以进行运算符重载,这就意味着我们可以定制我们自己的new内存分配器。 同时,由于C++特有的异常处理机制,我们不但可以在我们内存分配失败的时候,new返回一个null,同时也可以报出一个bad_alloc错误,同时调用我们的new_handler(ne...原创 2018-03-19 17:10:58 · 397 阅读 · 0 评论 -
C与C++中的static的关键词的作用
这里分成两个方面来讲:1.对于C语言原则一:只用进行一次初始化但是有一个原则必须讲,static所存储的位置: 还是把一个进程进行的位置放出: .text:指的是代码段 .data和.bss是我们要重点讨论的段: 这两个段存储着我们全局变量(包括全局静态变量和全局变量) .data:保存着我们已经初始化的全局变量和全局静态变量 .bss(block of start s...原创 2018-03-23 15:43:28 · 351 阅读 · 0 评论 -
C++内存泄露应对方法
解决这个问题之前,我们要先理解一下C/C++为什么会出现这个问题,主要原因是C/C++有new和malloc这种内存管理机制能够让我们自由的管理我们的堆空间,这就需要我们及时的对空间进行申请和回收。 很多情况下,出现内存泄露的原因是我们对空间进行了申请但没有进行及时的回收。 这种情况常出现在在申请之后,程序出现了异常。所以没法回收。 所以,我们很自然的我们的最重要的解决办法:把我们要管理...原创 2018-03-20 22:43:36 · 330 阅读 · 0 评论 -
C/C++ volatile关键词探幽
我们先选定操作系统centOS。 选定GCC的版本gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)先上我们的基础测试代码: 开两个线程,两个线程同时一起for循环:for i=1:n,对值sum进行累加,对sum值设置volatile和非volatile查看效果如何:#include <semaphore.h>...原创 2018-03-29 00:29:23 · 221 阅读 · 0 评论