随笔分类 -  C/C++ mistake

记录一些有痕迹的异常,以后根据相同或类似的痕迹能快速发现问题
摘要:通过调用栈逆推定位到是__Mtx_lock失败后导致调用std::Throw_C_errorVS崩溃栈解析位置是_Lock_attempt_small确定崩溃位置其实是在_Lk0.lock()内分析std::mutex,进入_Mutex_Base最后确定是_Check_C_Return(_Mtx_l 阅读全文
posted @ 2021-12-28 20:55 _离水的鱼 阅读(1263) 评论(0) 推荐(0)
摘要:以读的方式读取二进制文件,发现存在字节丢失的情况 改成 以二进制的方式读取 原因: fread以文本形式读取对0x0D 0x0A会变成0x0A 【C语言】fwrite 写如0X0A时,自动添加0X0D的解决方法 回车换行问题0x0D和0x0A 阅读全文
posted @ 2019-09-12 16:19 _离水的鱼 阅读(387) 评论(0) 推荐(1)
摘要:问题表象: 使用编译出来的库,会报一大堆未定义的引用 而这些未定义函数都来在那个库所依赖的boost和pthread 给项目链接时也加上了-lpthread lboost_system 现在还不知道为什么报错。 ##以为是import和export的原有,比较了下levelDB好像linux下并不需 阅读全文
posted @ 2019-06-04 15:20 _离水的鱼 阅读(319) 评论(0) 推荐(0)
摘要:在使用enabel_shared_from_this是遇到报错 研究了一下是继承的时候没有采用public继承的原因 https://blog.csdn.net/crazyhacking/article/details/8013458 这个文章指明private/protected继承时A的指针不能 阅读全文
posted @ 2018-12-07 10:40 _离水的鱼 阅读(1492) 评论(0) 推荐(0)
摘要:理论上来讲5.4应该支持C++11,时间20160609,但是实际上__cplusplus的值却是199711L 最后看到一篇文章的一句话,原来是默认不支持。所以只要在编译时加上-std=c++11 或者 -std=c++0x就可以了。 真是奇怪,何必呢 最后还是升级了g++-6,因为IDE写代码的 阅读全文
posted @ 2018-10-22 15:16 _离水的鱼 阅读(4036) 评论(0) 推荐(0)
摘要:尝试写了可变参数作为一个类的成员函数,编译时却提示未定义的引用 研究原因,其实就是编译器必须知道在专门化模板时模板是什么。 详细解释:https://ask.helplib.com/c++/post_4028588 阅读全文
posted @ 2018-10-08 10:08 _离水的鱼 阅读(202) 评论(0) 推荐(0)
摘要:在尝试变长参数的时候出现如上错误。当时使用指针是没问题的,换成引用报错了。 camera/CameraImpl.h:79:42: error: expansion pattern ‘Frame&’ contains no argument packs void read_frame(Frame& v 阅读全文
posted @ 2018-10-07 17:11 _离水的鱼 阅读(481) 评论(0) 推荐(0)
摘要:尝试写显示特化样例的时候,写了如下代码 编译时 在红色注释处报错 然后找原因半天找不到 换种写法,出现以下错误 C++::EC - expected initializer before '<' token 根据别人的文章才知道有类名“hash“有混淆。 解决方法:改一下名字,加个命名空间,或者去掉 阅读全文
posted @ 2018-07-09 11:00 _离水的鱼 阅读(451) 评论(0) 推荐(0)
摘要:记录一次错误,一开始看到这个错误,第一反应是不是释放了两次,后来检测绝对没有,然后又检查了下是不是new/malloc和delete/free没配对, 发现也不是,最后是发现new[x]中x是0的缘故,所以释放的时候出现了问题。 阅读全文
posted @ 2018-06-19 16:44 _离水的鱼 阅读(1509) 评论(0) 推荐(0)
摘要:switch(c) { case 0x01: int temp = a + b; .... break; case 0x02: break; default:break; } 此时会报如题所示错误 原因是因为C和C++中,一个变量的生命期(作用域)是这么规定的,中文还不好解释,英文原文是这样的:Th 阅读全文
posted @ 2018-06-07 12:21 _离水的鱼 阅读(465) 评论(0) 推荐(0)
摘要:在gcc4.4下,采用回调机制写了一个类似std::thread的线程类。 但是使用时却发生了核心已转移的错误。 main函数调用的代码大致是 FuncA内涵逻辑会创建一个线程大致逻辑精简为 其实这错误挺明显了,但是当时没看出来,主要是其实能运行 如果注释掉sleep采用while(true)代替, 阅读全文
posted @ 2018-05-31 10:13 _离水的鱼 阅读(6391) 评论(0) 推荐(0)
摘要:这是我自己写代码是遇到的错误,完全想不到报错和写错的地方有关联性,记录下来给别人参考。 不允许转载。 WhiteBack(&cut_buff,&out_buff,5)函数内有一段 cut_buff是自己申请的空间,这个for循环操作超过了我申请的范围。 然后打上断点,报错地方却是在后一个restor 阅读全文
posted @ 2017-09-26 10:33 _离水的鱼 阅读(2558) 评论(0) 推荐(0)