最新文章

堆溢出

少于 1 分钟读完

堆是用于动态内存分配的内存空间,malloc和new函数都是在堆上分配的内存。堆的另一含义就是数据结构中的大根堆、小根堆(也叫优先级队列)。 缓冲区溢出分为栈溢出和堆溢出。使用malloc等在堆上申请内存时,分配两部分,一部分是堆头信息,另一部分是数据区。

函数指针的用途

少于 1 分钟读完

“函数只不过是变量…….把函数主体看成值,函数名则为变量名称”——《head first javascript》

最复杂的函数指针——signal函数

少于 1 分钟读完

《APUE》10.3节开头的一个函数就打击了我,这个函数是就最简单的信号函数signal。它是第一个让我连声明都看不懂的函数。

C语言异常处理setjmp/longjmp

少于 1 分钟读完

常见的goto语句也可以实现跳转,但是仅限于当前函数内,使用setjmp()和longjmp()函数可以实现跨函数跳转,主要用途是实现C语言的异常处理机制,这两个函数包含在头文件setjmp.h中。数据类型jmp_buf用于保存恢复调用环境所需的信息,即程序调用环境上下文,运行时的堆栈信息。