
language
GoRunningSnail
这个作者很懒,什么都没留下…
展开
-
0xC0000005: 读取位置时发生访问冲突的bug记录
在遇到该bug前发现过类似的bug,都是在程序退出时出现的,认真查了下所有的析构函数,发现有指针未被new出来便释放了,于是使用了常用的safe_delete,释放前判断该指针是否为NULL,再进行相应操作,该方法基本解决了问题。今天在调试程序时发现一个诡异的现象,debug下关闭程序是正常的,release下关闭程序就会出现上述问题,而程序中所有的指针都通过上述的方法进行安全释放,查了一会发...原创 2018-07-23 20:18:40 · 10509 阅读 · 0 评论 -
【转】C++ 常见面试题
1. extern关键字的作用 extern置于变量或函数前,用于标示变量或函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。它只要有两个作用:当它与“C”一起连用的时候,如:extern "C" void fun(int a,int b)...转载 2019-02-11 22:35:00 · 223 阅读 · 0 评论 -
C++ 单例模式
引言前段时间面试时遇到一个问题,静态变量是否为线程安全的。静态变量在编译时进入main()函数前便进行初始化,其生命周期伴随着整个程序的生命周期,在程序结束时才会释放内存。对于静态实例变量,其在构造的时候是线程安全的,构造过程中第一个线程执行构造,其他线程会阻塞在构造的过程,然后构造完毕后该对象内部的静态变量是非线程安全的,因为其共享的是一份内存。因此,在设计工具类的时候,对于没有使用静态...原创 2019-02-10 22:51:57 · 238 阅读 · 0 评论 -
C++ 虚函数实现机制
转 C++面试题之虚函数(表)实现机制 前言大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处!既...转载 2019-02-07 19:40:18 · 2791 阅读 · 4 评论 -
dll使用stl/模板注意事项
起源前段时间面试遇到这样一个问题:“封装dll时需注意哪些事项”,当时不知道题意,更理不清思路,当然,整个面试也挂掉了。现在看来,这个题目有点太大了,刨去dll位数等不讲,我们针对dll中传递stl这种情况进行分析。现象在使用vs2010调用opencv2.4.10这个版本的findcontours函数时,传入了vector<vector<cv::point>&g...原创 2019-01-29 23:59:39 · 1052 阅读 · 0 评论 -
【转】C/C++运行时库
你所不知道的C和C++运行库 在使转载 2019-01-29 08:52:25 · 490 阅读 · 0 评论 -
C++面试题记录(持续更新)
1、类模板函数模板template<typename T>int compare(const T &v1, const T &v2){ if(v1 < v2) return -1; if(v2 < v1) return 1; return 0;}类模板template <typename T>class Com...原创 2019-01-27 22:31:16 · 187 阅读 · 0 评论 -
链表快慢指针原理及应用
快慢指针指两个移动速度不同的指针,多为2倍关系,快慢指针多用来查找链表中点、判断链表是否为环链、计算环链入口。查找链表中点设置快慢两个指针,其中快指针每次移动两个节点、慢指针每次移动一个节点,当快指针到达链表结尾时,慢指针所处的位置即链表中点处,该应用在leetcode109题有考察,简单代码如下:while (fast&&slow){ if (fast->...原创 2018-12-25 19:28:14 · 2081 阅读 · 2 评论 -
socket接收数据长度设置记录
近期在项目中使用原先封装的socket库时发现当长度超过1024时,接收到的字符串会有“烫烫烫”的标志出现,之前有看过大神调侃的“烫烫烫屯屯屯”,直觉地想到应该是数组的长度部分设置有问题。检查代码发现,用于接收的buffer长度为1024,而在使用socket的recv函数中也将最大长度设置为了1024,同时将buffer中的数组拷贝出去的长度也为1024,因此该字符串中没有‘\0’的结束符,打印...原创 2018-07-20 16:49:29 · 4242 阅读 · 0 评论