本文简单介绍如何通过valgrind检测c语言中的非法读写内存,避免发生不可预测行为。
1 什么非法读写内存
1.1 非法写内存
非法写内存是指往不属于程序分配的内存中写入数据。比如malloc一段内存,大小只有5个字节,那么你只能往这5个字节空间写入数据(如果是拷贝字符串,只能写4个字节),在这5字节的内存空间之外写入数据,都是非法的。比如写数组时越界,拷贝字符串时忘记结尾结束符。
继续阅读 »
Caused by: java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
at org.apache.lucene.store.DataInput.readVInt(DataInput.java:134) ~[lucene-core-5.5.0.jar:5.5.0 2a228b3920a07f930f7afb6a42d0d20e184a943c - mike - 2016-02-16 15:18:34]
at org.apache.lucene.codecs.blocktr
继续阅读 »
1 基础知识
go语言有以下特点:
编译型语言,编译速度快
静态类型语言,拥有动态类型语言特点
类c语法,简单易学
支持gc
语言层面支持并发
跨平台编译
2 著名的go项目:
继续阅读 »
PyLongObject
PyLongObject 定义在 include/longobject.h 中,实际的 longobject 对象定义在 include/longintrepr.h 中。
~~~C
// include/longobject.h
typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */
~~~
继续阅读 »
tbox supports sqlite3 and mysql databases now(depends on libsqlite3.a and libmysql.a) and provides the unified api to access database.
We only need pass a given url for connecting and accessing it.
A simple example:
```c
/* init a mysql database
*
* mysql database url:
*
* - "sql://localhost:
继续阅读 »
随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了。因此本文提供一些解决方案,可以是MIUI6+,Flyme4+,Android6.0+支持切换状态栏的文字颜色为暗色。
more
修改MIUI
java
public static boolean setMiuiStatusBarDarkMode(Activity activity, boolean darkmode) {
C
继续阅读 »
鉴于U盘中Sublime的配置常常莫名其妙地消失,在此将其记录一下。
Code
{
"cmd": ["fpc", "-S2", "${file}", "-o${file_path}/${file_base_name}.exe"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.pascal",
"variants": [
{
"name": "Run",
"c
继续阅读 »
(1)ClassLoader基本概念
与C或C++编写的程序不同,Java程序并不是一个可执行文件,而是由许多独立的类文件组成的,每一个文件对应一个Java类。
此外,这些类文件并非全部装入内存,而是根据程序需要逐渐载入。
ClassLoader是JVM实现的一部分,ClassLoader包括bootstrapclassloader(启动类加载器),ClassLoader在JVM运行的时候加载Java核心的API,以满足Java程序最基本的需求,其中就包括用户定义的ClassLoader。
这里所谓的用户定义,是指通过Java程序实现的两个ClassLoader:一个是ExtClassLoader,它的作用是用来加载Ja
继续阅读 »
Website
Sources
Changelog
Changes
Change install and uninstall actions
Update templates
Improve to check function
Bugs fixed
#7: Fix create project bug with '[targetname]'
#9: Support clang with c++11
Fix api scope leaks bug
Fix path bug for windows
Fix check function bug
Fix check toolchains failed
Fix compile fa
继续阅读 »
文/Robin
扩展坞(Docking station),又称端口复制器(Port Replicator),是专为笔记本电脑设计的一种外置设备。通过复制甚至扩展笔记本电脑的端口,可使笔记本电脑与多个配件或外置设备(如电源适配器、网线、鼠标、外置键盘、打印机及外置显示器)方便的一站式连接。笔者的办公桌桌面挺宽,放置的东西挺多,所以对于扩展坞的需求挺高。
笔者在选购扩展坞期间,去 Google 搜索了不少资料,也看了挺多测评。少数派上有两篇文章值得一看:
为了买一个完美的雷电 3 扩展坞,我累计花掉了一台 iPhone 11 的钱
视频:为了帮你排雷,我们测试了 8 款 Type-C 拓展坞
以上两篇文章提及如下的型号:
C
继续阅读 »