摘要:
Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind遵守GNU通用公共许可证条款,是一款自由软件。到3.3.0版本为止,Valgrind支持x86、x86-64以及PowerPC上的Linux。除此之外,还有一些其它非正 阅读全文
摘要:
首先,结构在C语言中也是一种数据类型,叫做聚组类型(还包括数组)。他和其他的数据类型是一样的,在定义一个结构体的时候,系统并不会为他真正的分配内存空间(定义的结构体变量要在编译的阶段才分配空间,而结构体指针要显示的使用malloca来分配空间),也就是说,在定义结构体这种数据类型的时候是不会分配内存 阅读全文
摘要:
https://juejin.im/post/5c46be276fb9a04a0f6580e3 阅读全文
摘要:
已知第二维 char (*a)[N]; //指向数组的指针,实际上这里的N并没有实际的约束意义,平时也很少这么用a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d\n", sizeof(a)); printf("%d\n", sizeof(a 阅读全文
摘要:
一、 什么是“Segmentation fault in Linux”所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在 阅读全文
摘要:
除了理所当前的各路文本记录(比方数据库的运行报错日志之类),PG的二进制类日志文件主要有两个,一个就是对应传统数据库理论的redo日志,理论上,所有数据的修改操作都会被记录到这个日志,在事务提交的时候确保操作都记录到磁盘中,这样讲即便发生宕机,数据库也能以不丢数据的形态重新复活。 但是,各个数据库在 阅读全文
摘要:
一、前言 在数据库中,并发控制是指在多个用户/进程/线程同时对数据库进行操作时,如何保证事务的一致性和隔离性的,同时最大程度地并发。 当多个用户/进程/线程同时对数据库进行操作时,会出现3种冲突情形: 读-读,不存在任何问题 读-写,有隔离性问题,可能遇到脏读(会读到未提交的数据) ,幻影读等。 写 阅读全文
摘要:
1、 作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分如:A,B表示两个类,在A,B中都有成员member。那么 A::member就表示类A中的成员member B::member就表示类B中的成员member 2、 全局 阅读全文
摘要:
复杂部分略去,摘录要素如下: 1.typeid是C++的关键字之一,等同于sizeof这类的操作符。 2.typeid操作符的返回结果是名为type_info的标准库类型的对象的引用(在头文件typeinfo中定义) 3.C++并没有规定typeid实现标准,各个编译器可能会不一样。 4.编译器会为 阅读全文
摘要:
阅读全文