c++
文章平均质量分 75
tobybo
不积跬步,无以至千里
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux 编译 c++ 静态库(包含类的实例化)给 c 程序调用
c++ 是面向对象的编程语言,比较方便实现某些第三方库,比如翻译其他面向对象语言的代码,比 c 语言要方便的多。而 c 语言跟 c++ 很亲和,可以用 c++ 来实现,编译成静态库,提供给 c 程序使用。至于用静态库而不是动态库,是因为静态库会打包到 c 程序中,不需要依赖运行场景中是否有该库的存在,方便部署。该文件只用于封装第三方库提供的 api 为c语言函数风格,不需要实现第三方库的具体功能,不使用第三方库的 c++ 类型,比如 class myclass。在这些文件中实现第三方库的所有功能。原创 2023-01-08 11:18:45 · 1424 阅读 · 0 评论 -
代码查错:std::list.size()错误使用导致内存泄漏
在linux上用valgrind检查代码是否有内存泄漏时发现有5块资源申请没有释放:命令格式: valgrind --tool=memcheck --leak-check=full --show-reachable=yes./a.out==27676== 5,160 bytes in 5 blocks are definitely lost in loss record 1 of 1==27676== at 0x4C31556: operator new(unsigned long) (.原创 2020-06-11 15:29:15 · 1153 阅读 · 0 评论 -
LIST_ENTRY(ptr, type, member) 用法
#define LIST_ENTRY(ptr, type, member) \ ((type *)((char *)(ptr) -(unsigned long)(&((type *)0)->member)))使用这个宏的作用:ptr 为指向type类型结构体的一个成员的指针。 这个成员就是member。 通过这个宏我们就可以得到包含ptr指向的成员的结构体的首地址。通常的应用场景:#include<iostream>#include<...原创 2020-05-27 11:39:29 · 971 阅读 · 0 评论 -
编译报错 undefined reference to “vtable for child”
先说结果: 父类定义的虚函数,子类如果重载了 ,那就必须定义具体实现,不能弄个没有函数体的函数名放那里碰瓷。#include<iostream>using namespace std;class parent{public: parent(){ std::cout<<"parent constructor no param"<<std::endl; };private: parent(int a){ std::cout<<".原创 2020-05-25 23:13:29 · 786 阅读 · 0 评论 -
代码查错:map变量存储内容被破坏
场景描述:linux通讯服务器工作时,接收第一个客户端消息能正常接收并处理完成;接收第二个客户端消息时就崩溃1. 发现问题:进程崩溃一般会产生core文件;查看coredump文件:gdb gameserver /corefile/core-xxx;[coredump文件使用的相关命令: ulimit -a 查看coredump文件是否允许创建 若结果为0,则表示关闭了此功能,不会生成...原创 2020-04-19 11:06:05 · 3532 阅读 · 0 评论
分享