![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
一个幽默且帅气的程序员
这个作者很懒,什么都没留下…
展开
-
c++中 . 和 -> 的区别
.号左边的是个类的对象,或者结构体的对象->号的左边是一个类的对象指针,或者结构体对象的指针如:string s;s.length(); string *s; s->length();原创 2015-04-16 19:59:00 · 464 阅读 · 0 评论 -
C语言运行报glibc detected malloc corruption错误
C代码编译运行后出现glibc detected malloc corruption错误,实际原因是代码malloc内存大小与memset内存大小不一致,memset时破坏了内存文件系统标志位,后面代码malloc时出现malloc错误,该问题不是必现,如果出现后就会频繁出现,gdb跟踪只能跟踪到代码大概malloc错误地点,然后需要看该地点之前的代码,找到malloc与memset不一致的地方,原创 2017-12-04 08:51:02 · 1256 阅读 · 0 评论 -
struct字节对齐问题
C语言项目开发过程中发现其他模块发给自己模块的消息长度与自己代码sizeof(struct)不一致,经过定位分析发现两边struct字节对齐方式不一致,C语言中默认为四字节对齐,如果struct字节不足4的倍数,则以4的倍数为sizeof最后的大小例如:struct a{int b;char c;}a;此时sizeof(a)则为8个字节,实际需要计算为5个字节,这时需要在s原创 2017-12-04 10:02:57 · 632 阅读 · 1 评论 -
realloc invalid pointer错误
代码运行出现该错误一般是函数传入的指针是malloc的内存指针,函数出参仍为该指针,函数内部对该指针进行操作,入参没有取该指针的指针,导致指针非法使用。如:函数定义U32 realloc_error(char *a){memcpy(a+1, "hello world", strlen("hello world"));}char * a = malloc(255)原创 2017-12-15 15:22:56 · 2173 阅读 · 0 评论 -
C语言内嵌Python import时提示undefined symbol错误及解决
项目切gcc 4.6版本时,C语言内嵌了python,运行bin文件import时出现importError错误,提示python-2.7.11/lib/python2.7/lib-dynload/_collections.so: undefined symbol: _Py_ZeroStruct.基本代码如下:#include #include #include int main(原创 2018-01-04 19:14:52 · 11504 阅读 · 1 评论 -
C语言发送SNMP Trap消息
项目需求系统利用SNMP Trap消息上报状态给NMS,考虑使用net-snmp提供的SNMP库函数实现该功能,且需要根据不同端口使用不同的session。1)头文件为了使用 netsnmp 的 API,必须 include 以下这些头文件:12#include net-snmp/net-snmp-config原创 2018-01-15 16:06:09 · 4233 阅读 · 2 评论 -
snmp协议原理
snmp原理snmp:简单网络管理协议,Simple Network Management Protocol。用于网络管理的协议,管理员通过snmp的读操作(GET)向设备获取数据,通过snmp的写操作(SET)向设备执行设置操作;设备通过snmp的trap操作(报警)向管理员通报设备的重要状况改变事件。snmp的基本思想是为不同种类、不同厂家、不同型号的设备定义一个统一的接口和协议,使管原创 2018-01-06 11:30:14 · 5325 阅读 · 0 评论 -
/usr/bin/ld: skipping incompatible解决方案
近期需要和友商联调功能,根据友商提供的.a文件和demo实例,编写到工程项目中,编译时发现报错:/usr/bin/ld: skipping incompatible.....问题该问题实质是:链接库文件时,库文件版本与平台版本不对应。通过objdump -a/p查看友商提供的.a文件发现为为64位库文件,而我们自己bin文件为32位,且编译选项已强制为-m32...原创 2018-05-22 10:07:40 · 10215 阅读 · 1 评论 -
结构体中最后一个成员数组定义0个元素的意义
数组本义不支持动态扩展,但可以通过声明结构体中最后一个成员数组定义为0个元素可巧妙的实现C语言里的数组扩展。但如果定义为指针,则需要单独申请内存,动态拷贝。struct MyData { int nLen; char data[0]; }; 在结构中,data是一个数组名;但该数组没有元素;该数组的真实地址紧随结构体MyData之后,而这个地址就是结构体后面数据的地...原创 2018-07-04 20:21:48 · 1287 阅读 · 0 评论