摘要: 转载文章地址 char *a = "hello" 中的a是指向第一个字符‘a'的一个指针 char a[20] = "hello" 中数组名a也是执行数组第一个字符‘h’的指针 但二者并不相同: 看实例:把两个字符串相加: 结果: 对比: 结果: 把字符串加到指针所指的字串上去,出现段错误,本质原因 阅读全文
posted @ 2019-03-28 16:34 wpgraceii 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 1.实现每天8点,10点,12点定时群发邮件(可以延伸到国内和国外用户,争取无延迟,忽略网络环境的影响) 阅读全文
posted @ 2019-03-14 09:35 wpgraceii 阅读(510) 评论(0) 推荐(0) 编辑
摘要: Golang面试问题汇总 通常我们去面试肯定会有些不错的Golang的面试题目的,所以总结下,让其他Golang开发者也可以查看到,同时也用来检测自己的能力和提醒自己的不足之处,欢迎大家补充和提交新的面试题目. Golang面试问题汇总: 1. Golang中除了加Mutex锁以外还有哪些方式安全读 阅读全文
posted @ 2019-03-14 09:32 wpgraceii 阅读(60480) 评论(0) 推荐(15) 编辑
摘要: Valgrind 程序分析如下: 分析问题: 1.有几条数据留在了堆上? 二条 2.哪条数据留在了堆上? strdup ,create 3.哪一行或哪几行代码导致了泄漏? 296 4.如何修复泄漏? //创建了不是嫌疑人的节点 但是没有添加到新的二叉树节点里面去 导致数据留在了堆上 current- 阅读全文
posted @ 2019-03-11 11:05 wpgraceii 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 利用Valgrind工具进行内存泄露检测和性能分析 Valgrind通常用来成分析程序性能及程序中的内存泄露错误 一 、Valgrind工具集简绍 Valgrind包含下列工具: 1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。 2、callgrind:检测程序代码的运行时间和 阅读全文
posted @ 2019-03-11 10:42 wpgraceii 阅读(2907) 评论(0) 推荐(0) 编辑
摘要: 运行程序报错: invalid memory address or nil pointer dereference 错误定位: 这里涉及到自旋锁的概念 这里参考 https://www.cnblogs.com/cyyljw/p/8006838.html 自旋锁可以使线程在没有取得锁的时候,不被挂起, 阅读全文
posted @ 2019-02-26 23:48 wpgraceii 阅读(556) 评论(0) 推荐(0) 编辑
摘要: 思考: 1.什么channel? 2. 在goroutine之间 channel扮演什么角色 3.怎么使用好channel 源码如下: 执行结果如下: "hello world 延迟一秒之后显示" 阅读全文
posted @ 2019-02-26 13:58 wpgraceii 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 思考: 1.golang 为什么需要mutex 2. 使用mutex需要注意什么 3.为什么需要channel 来接收goroutine传递的消息(共享通信消息编程) 代码如下: 执行结果如下: 阅读全文
posted @ 2019-02-26 13:29 wpgraceii 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 没有使用goroutine 之前 使用goroutine 之后 匿名goroutine 总结:适用于高并发的场景 阅读全文
posted @ 2019-02-26 11:37 wpgraceii 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 1.main.go文件 2.main_test.go 文件(windows7环境) 执行结果如下 总结: 个人学习go 测试学习示例,不适用于项目 阅读全文
posted @ 2019-02-26 11:17 wpgraceii 阅读(138) 评论(0) 推荐(0) 编辑