对于每个 C 语言开发者来说中,内存错误(内存泄漏,内存越界,野指针,空指针等)恐怕是再熟悉不过了。这些错误通常严重级别很高,隐藏很深而且会产生随机错误,即便在很多调试工具的帮助下,为了找到重现的路径,也需要花费大量的时间。对于uClinux来说,情况就更糟糕了,那些在x86上能够导致程序退出的错误,在uClinux中大多数情况下并不会退出而只是产生奇怪的运行结果. 我们知道,这类错误尽管可以在编码时尽量减少却无法做到全部根除,那么,在这类错误产生时,有什么办法能够帮助我们迅速定位呢?此时只能
栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端称作“栈顶(top)”,不允许插入和删除的另一端称作“栈底(bottom)”。 通常称往栈顶插入元素的操作为“入栈”,称删除栈顶元素的操作为“出栈”。因为后入栈的元素先于先入栈的元素出栈,故被称为是一种“后进先出”的结构,因此又称 LIFO 表(Last In First Out的缩写)。 和线性表类似,栈也有两种存储表示:顺序栈和链栈。 顺序存储结构简称为顺序栈。和顺序表类似,对顺序栈也需要事先为