码迷,mamicode.com
首页 >  
搜索关键字:栈顶指针    ( 109个结果
数据结构 - 栈的链式存储
栈的链式存储1 栈的链式表示 栈的链式存储结构称为链栈,是运算受限的单链表。其插入和删除操作只能在表头位置上进行。因此,链栈没有必要像单链表那样附加头结点,栈顶指针top就是链表的头指针。图3-4是栈的链式存储表示形式。链栈的结点类型说明如下: typedef struct Snode { ElemType data ; struct Snode *next ; } SNo...
分类:其他好文   时间:2015-04-29 09:56:46    阅读次数:123
数据结构 - 栈动静态顺序存储
栈1 栈的概念 栈(Stack):是限制在表的一端进行插入和删除操作的线性表。又称为后进先出LIFO (Last In First Out)或先进后出FILO (First In Last Out)线性表。 栈顶(Top):允许进行插入、删除操作的一端,又称为表尾。用栈顶指针(top)来指示栈顶元素。 栈底(Bottom):是固定端,又称为表头。 空栈:当表中没有元...
分类:其他好文   时间:2015-04-29 09:55:40    阅读次数:127
函数调用栈
栈: 在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。  当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。  当发生函数调用的时候,...
分类:其他好文   时间:2015-04-26 09:21:05    阅读次数:205
__stdcall与__cdecl函数调用的不同
ESP是栈顶指针 Extended Stack Pointer EBP是基址指针 Extend Base Pointer ESP就是一直指向栈顶的指针,而EBP只是用于存取某时刻的栈顶指针,以方便对栈的操作 使用__stdcall的话,调用侧从右往左压栈函数参数,但不退栈,需要函数退栈 使用__cdecl的话,调用侧从右往左压栈函数参数,并且在调用后,调用侧主动执行退栈...
分类:其他好文   时间:2015-04-15 09:37:30    阅读次数:153
栈上数组,做了什么事?
考虑 char tmp[7] = "abcd"; 做了什么事?1、按道理,堆栈指针需要在栈顶挪出7个字节,但是为了字节对齐,栈顶指针会挪出8个字节,最高地址的一个字节不使用,是cc,注意:栈的使用,地址是减小的。2、tmp就是栈顶指针的别名,是个常量,不能修改指向。3、从栈顶向高地址拷贝a,b,c,...
分类:编程语言   时间:2015-04-03 23:51:23    阅读次数:170
一个简单C程序的汇编代码分析
几个重要的寄存器eip - 用于存放当前所执行的指令地址esp - 栈(顶)指针寄存器ebp - 基址(栈底)指针寄存器简单的C程序 1 int g(int x) 2 { 3 return x + 10; 4 } 5 6 int f(int x) 7 { 8 return g(x); 9 ...
分类:其他好文   时间:2015-03-09 00:25:05    阅读次数:209
看数据结构写代码(8)顺序栈的实现
欢迎指出 代码 不足之处 在写顺序栈的时候 犯了两个错误,:一个是 对栈的 认识不够清楚,栈顶指针的下一个位置为栈顶元素; 另一个是粗心,在用 realloc 分配内存的时候,忽略了元素本身的大小,只写了 元素的个数。 希望引以为戒。 上代码: // SqStack.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include...
分类:其他好文   时间:2015-03-02 09:41:10    阅读次数:194
数据结构:链栈
栈的定义:当单链表限定只能在头部进行插入和删除操作的时候,就是链栈。同时把栈顶放在单链表的头部,使单链表的头指针和栈顶指针top合二为一,所以对于链栈,就不再需要头结点了。这时对链栈的push也就相当于单链表的头插法。同时对链栈来说,基本不存在栈满的情况,除非内存已经没有可以使用的空间了,对于空栈来...
分类:其他好文   时间:2015-02-10 01:50:43    阅读次数:129
缓存区溢出的基本原理
缓存区溢出是由于当被被溢出程序/系统调用类似于read()、sprintf()\strcpy()等函数时向程序的内存空间中写入字符串,一般程序会将其放入堆或栈数据结构中 。若其对写入数据大小没有严格限制,则可能引起数据覆盖函数调用时压栈的esp栈顶指针及eip返回值,通过精心设计的写入数据,可以控制...
分类:其他好文   时间:2015-02-04 14:17:10    阅读次数:132
栈的顺序存储结构
#define STACK_INIT_SIZE 100;//定义栈的初始化存储空间 #define STACKINCREMENT 10;//定义栈的追加存储空间的大小 typedef struct { SElemType *base;//栈尾元素,在栈构造之前和销毁以后,base=NULL SElemType *top;//栈顶指针 int stacksize;//栈的长度 };SqSta...
分类:其他好文   时间:2015-01-30 16:05:36    阅读次数:129
109条   上一页 1 ... 7 8 9 10 11 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!