2013年2月1日

因数组越界破坏了栈而导致的错误

摘要: 当访问数组的时候,C不会执行数组边界检查。如果数组的存储空间是在栈中分配的,同时栈中保存了其他有用的数据,例如caller的返回地址、局部变量以及被保存的寄存器值,当向越界的数组元素存放数据时就会覆盖掉之前保存在栈中的已有数据,由此将会产生严重的程序错误。下面通过GDB调试工具来演示一下该错误产生的过程:编写测试代码getline.cchar *getline(){ char buf[8]; char *result; gets(buf); result = malloc(strlen(buf)); strcpy(resul... 阅读全文

posted @ 2013-02-01 17:03 kobe_tim 阅读(1612) 评论(0) 推荐(0) 编辑

导航