c/c++
xiaohuima_dong
这个作者很懒,什么都没留下…
展开
-
记录一个因头文件引发的错误
项目中有一个接口是在外部实现,大致调用结构如下图四个文件。share.h中的结构体中有一个成员,其结构在另外一个头文件中定义。main函数中调用share.c中实现的接口,获取到struct student类型的成员,只要一访问结构体中的成员就直接报段错误,通过gdb也看不出什么信息。但是如果在share.c中访问,就没有问题。(在x86平台这样写,然后运行,发现没问题)针对这个现象,当时就觉得有点像C++中的成员访问权限引发的问题一样。但是这是C代码,从根本上来说就是访问一段内存而已。原创 2020-08-20 16:50:30 · 177 阅读 · 0 评论 -
记录一次内存错误排查过程
问题现象一个播放器的实现代码,在多次播放后,出现异常挂死,gdb显示如下图通过bt命令查看函数调用栈,只有一条有效消息,就是 “#3 0xa0” 这个地址明显是错误的。所有怀疑是栈被破坏了。直接报错内容也是多种多样。以下这些错误都出现过。double free or corruption (!prev)corrupted size vs. prev_sizedouble free or corruption (out)malloc(): memory corruption ...原创 2020-08-14 14:14:22 · 2007 阅读 · 1 评论 -
c语言内存分配
点击打开链接在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及转载 2015-03-08 13:02:46 · 567 阅读 · 0 评论 -
调试
1. 可以利用下面的宏来输出调试打印信息,去掉定义的_DEBUG 即可去掉打印信息的输出#define _DEBUG#ifdef _DEBUG#define printf_dbg(arg1, args...) printf(arg1, ##args)#else#define printf_dbg(arg1, args...)#endif原创 2015-11-05 10:40:51 · 293 阅读 · 0 评论 -
简单代码复杂化
下面是一个Step by Step的教程,教你如何把一个清晰的代码变得复杂难懂的。当然,这只是一个“简明教程”了。还是那句话——“本文仅供朋友们“消遣作乐”,如果你要觉得有意思的话,顶个贴。如果你觉得没什么意思的话,一笑了之。仅供娱乐而已,不必太过认真。 ” 开始程序下面是一个找出素数的程序:[cpp] view plaincopy转载 2015-10-24 08:50:23 · 2148 阅读 · 0 评论 -
C程序编译过程
接触编程还在么长时间,还没有好好理解下一段代码从.c到可执行程序的过程。先看一下gcc的常用参数:[参数详解] -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件 -S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc原创 2015-11-01 09:33:23 · 356 阅读 · 0 评论 -
字符串解析
解析字符串一:int parse_string(int* argc, char* argv[], char* buf){ char* find = buf; int i = 0; int k = 0; int state = 0; for ( i=0;原创 2015-10-16 10:52:14 · 385 阅读 · 0 评论 -
UE激活步骤
UltraEdit是一款优秀的文字编辑软件,本篇经验将为大家介绍怎么正确注册UltraEdit。方法/步骤1关闭网络连接(或者直接拔掉网线)。打开UltraEdit软件,稍等片刻会出现提示你你使用的是试用版本的窗口。如下图,点击“注册”。填转载 2016-10-18 17:03:43 · 3179 阅读 · 0 评论 -
判断指定格式字符串是否合法
int ereg(char *pattern, char *value) { int r,cflags=0; regmatch_t pm[10]; const size_t nmatch = 10; regex_t reg; r=regcomp(®, pattern, cflags);原创 2016-11-10 15:10:17 · 543 阅读 · 0 评论