![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++坑
Coder.Z
这个作者很懒,什么都没留下…
展开
-
记c++坑:7.记一次由智能指针导致的内存泄漏问题解决
目录项目背景问题产生项目背景我们的主要产品是一个针对个人用户的c/s,b/s混合架构的应用,为了对我们产品的一些新功能调试,压力测试,以及对线上服务的监控,我使用c++开发了一个机器人程序。这个程序中90%的设计和代码由我完成,除了其中的一个基于udp通信的库,使用了enet,然而这个库在之前不可追溯的几任维护者手中,将其代码进行了修改,居然在里面掺杂了tcp通信的功能!这完全违背了设计模式的...原创 2019-11-20 16:56:37 · 970 阅读 · 0 评论 -
记C++坑:1.被自己坑了一次的全局变量使用
最近遇到一个问题,打算写一个小的测试程序来测试一下自己设计的算法方案。当时也没考虑就用了全局变量。当时的代码是这样写的:int intarray[] = {1,10,100,1000};int CreateArray(int* arrayname){ arrayname = new int[4]; memccpy(arrayname,intarray,sizeof原创 2016-12-15 10:24:31 · 2536 阅读 · 1 评论 -
记C++坑:2.局部变量的申明方式
最近有同事问,没什么他写的下面这段代码会报错:int cls::getmapvalwithlock(int key, std::mutex& lock){ std::unique_lock(lock); return m_map[key];}错误原因是变量lock重定义。然后他将代码改成int cls::getmapvalwithlock(int key, std::mutex&原创 2017-02-15 11:32:01 · 936 阅读 · 0 评论 -
记C++坑:3.结构体和类对齐补齐
背景:项目从旧的编译器(VC6)移植到新编译器(VS2015)。移植过程中有很多的编译错误连接错误都一一解决之后,运行,发现崩溃,错误为声明一个类类型对象变量时候堆栈错误。导致出现内存问题。因为是移植项目,原来的编译器编译的版本跑起来好好的,所以没太怀疑时代码问题,最开始的思考思路一直集中在是不是使用的lib库有问题,检查项目配置,检查各个库的版本,都没有什么发现,后来再来看代码,发现真的原创 2017-04-13 14:56:41 · 1262 阅读 · 0 评论 -
记C++坑:5.默认的隐式类型转换
最近排查解决一个项目中的性能问题,发现在一个工作线程中有这么一段代码:uint64_t servive_loops = 0;while(true){ // 业务逻辑代码 if (servive_loops % 1000 == 0) // 标记-1 { RecodeServiceStatistics(m_statistics); } ...原创 2018-09-20 20:51:38 · 496 阅读 · 0 评论 -
记C++坑:6.正则标准库regex不同平台行为不一致
代码如下:#include <string>#include <iostream>#include <regex>#define REG "hello(, |)"int main(){ std::string s1 = "#hello, hello#"; std::string s2 = std::regex_replace(s1, st...原创 2019-01-02 16:11:22 · 667 阅读 · 0 评论