C++
文章平均质量分 94
wu_cai_
这个作者很懒,什么都没留下…
展开
-
C++时间与字符串转换
[cpp] view plain copy print?1、常用的时间存储方式 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval精确到毫秒。 2)tm结构,这本质上是一个结构体,里面包含了各时间字段 struct tm转载 2017-01-17 14:12:16 · 4914 阅读 · 0 评论 -
linux环境内存分配原理 mallocinfo
Linux的虚拟内存管理有几个关键概念:Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ?Linux的虚拟内存管理有几个关键概念:1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址;2、虚拟地址可通...转载 2019-03-28 09:42:08 · 327 阅读 · 0 评论 -
malloc_stats---检查内存泄露的神器
在之前的博客中提到过,valgrind可以用来检测内存泄露,但在使用中,往往会遇到一些问题,给调试工作带来很多不必要的麻烦,我自己遇到的有以下两种:(1)内存泄露误检(系统初始化时,可能有一些需要长期保存在内存中的数据结构,这些空间是永远不释放的,而这些内存会被认为绝对泄露)(2) valgrind检查内存泄露过于全面,运行后的结果太多往往很难从中找到有用的信息。有...转载 2019-03-25 17:30:01 · 961 阅读 · 0 评论 -
qsort用法--完整版(解释了cmp)
原文地址:http://hi.baidu.com/xuhanqiu/item/99505e41aeef4eae61d7b916用qsort快两年的时候了,却一直没有真正弄懂cmp函数的返回值1,-1,0的函数. 今天在做凸包时,郁闷了....所以请教了snoopy,终于弄懂了cmp返回值的意识:int cmp(const void *a, const void *b)返回正数就是...转载 2018-11-29 19:45:41 · 889 阅读 · 0 评论 -
大小为0的数组
size为0的数组是GUN C支持的一个特性,这个特性可以用来模拟动态大小的数组,同时又避免了一些问题,所以还是比较有实际意义的一个小技巧。在网上参考了一些资料,大多数资料都是以结构体中包含一个大小为0的数组为例。我想这样可能是基于两点考虑: 因为动态大小是“模拟”出来的,所以不可避免要申请空间,那么对于申请空间而言,以一个结构体的形式来申请,是比较方便的; 容易与别的实现方法做对比,...转载 2018-08-23 14:15:30 · 2277 阅读 · 0 评论 -
sscanf,sscanf_s及其相关用法
#include<stdio.h> 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因...转载 2018-08-15 13:49:32 · 6290 阅读 · 1 评论 -
Linux内存分配小结--malloc、brk、mmap
转发地址:https://blog.csdn.net/gfgdsg/article/details/42709943 http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201210975312473/http://blog.sina.com.cn/s/blog_7c60861501015vkk.htmlLinux 的虚...转载 2018-08-14 20:26:06 · 444 阅读 · 0 评论 -
C/C++变长参数实现log输出
__VA_ARGS__宏使用说明#define qWiFiDebug(format, ...) qDebug("[WiFi] "format" File:%s, Line:%d, Function:%s", ##__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__); 上面的宏是使用qDebug输出调试信息,在非Qt的程序中也可以改为printf,守护进程...转载 2018-02-26 15:49:18 · 555 阅读 · 0 评论 -
C++内存泄漏检测工具-Valgrind使用简介
一 valgrind是什么?Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图...转载 2017-01-19 10:57:11 · 5839 阅读 · 0 评论 -
用Valgrind定位子进程内存泄漏
1. valgrind跟踪子进程以下例子用spawn-cgi来测试验证,spawn-cgi会生成一个cgi子进程--trace-children=yes:valgrind加上该参数用于跟踪子进程valgrind --leak-check=full --trace-children=yes --tool=memcheck --log-file=a.log spawn-fcgi -a 12...转载 2019-04-16 17:52:58 · 2625 阅读 · 0 评论