当前位置:  技术问答>linux和unix

问一个简单问题,但是理解不了为什么?牛人过来看看

    来源: 互联网  发布时间:2016-03-18

    本文导语:  char *p="123456789"; char h[4]="123"; strcpy(h,p); 运行结果是段错误 把char h[4]改成char h[5] 运行成功,都是数组越界为什么会有如此的差异呢? | 都是内存溢出。 不要钻这样的牛角见. 运行的情况和和内存布局有...


char *p="123456789";
char h[4]="123";
strcpy(h,p);
运行结果是段错误
把char h[4]改成char h[5]
运行成功,都是数组越界为什么会有如此的差异呢?

|
都是内存溢出。
不要钻这样的牛角见.
运行的情况和和内存布局有关,都存在很大的不确定性。
char h[4]的情况,在我机器上也不产生段错误。存在随即性。

|
linux下分配内存是按页分配的。 也就是说即使你分配一个字节的内存, 系统也会分配出一页内存(4K)。

当内存被破坏了,不见得立刻就能反应出问题来。


|
只是随机问题,溢出不报错不代表没有溢出

|
出现段错误?
可能吗?

你这样使用strcpy本身就存在危险!

|
肯定过界,但不一定反映出来。用efence或valgrind一查就出来了。

|
不同版本的内核所显示的结果是不一样的.
我在redhat linux9 中运行的话是没有任何错误提示的,比如段错误.
但是在centOS中,不管改成h[4]还是h[5]运行的话都是段错误.
也就是说redhat中的内核的安全检查没有CentOS的严格.
          内核                    gcc
redhat  2.4.20-8               3.2.2
CentOS  2.6.8-53.e15           4.1.2

|

CentOS就是基于Redhat,应该是内核和gcc的版本问题导致的差异吧

|
随机的,这样用本来就是很危险的

    
 
 

您可能感兴趣的文章:

  • 问一个《深入理解计算机系统》中的问题
  • LDD3 阅读理解问题
  • 一个很让人理解的问题!
  • 关于socket概念的理解问题!
  • 多播的问题,感觉还是有一点没理解
  • 深入理解计算机系统一书的一个问题
  • 理解不了的编译连接问题
  • 求助!!关于两行代码的理解问题!请大虾近来看看!!(在线等待)
  • 初学,请教一个信号问题,这个方法不理解
  • makefile中的问题 $(AR) cqv $@ $(LIBOBJS) 不理解
  • 求助!!关于两行代码的理解问题!请大虾近来看看!!
  • 一个比较难理解的问题(关于Java类的概念)
  • 模块编译的小问题,对makefile的理解
  • [兴奋]一个很强的技术问题,我觉得理解了,了解LINUX你可以进入一半了.
  • 读unix 经典著作 apue 中文版本,这里翻译是否有问题 ,还是我理解有误?
  • 一个关于匿名类的问题。觉得不好理解。
  • 请教使用相关值对象的理解和使用问题。(请大家帮忙)
  • 这个结果如何理解?(菜鸟级问题)
  • 一个比较少见的基础问题!MyClass.class 到底编译器时怎样理解的?内详!
  • 关于Applet, 一个十分让人不理解的问题!!!?
  • fedora16 安装mysql问题 求过来人
  • applet发布的问题,高人看过来
  • 鱼鱼,过来,问你个问题!!!!!!!!
  • 比较简单的问题!(大家过来帮忙呀。。。)
  • 高手请看过来,我有些问题,我是新手.关于线程的!
  • 比较菜鸟的问题我怎么在jsp或javabean中得到前面提交过来的那一页的URL
  • fedora linux切换到root 出现问题!!给位过来看看吧!!!
  • 关于时间的问题 麻烦各位过来 帮我看一下
  • 高手看过来:Linux问题!!!
  • ResultSet的问题,平时没注意。很奇怪的问题,高手看过来
  • 看到一个问题不错,我也想知道,就转过来,请教各位:如何让虚拟空间用户不能执行他自己文件外的文件操作命令?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • iptables规则问题,请大家帮忙看看怎么回事
  • 在编译内核时候出现问题,大家来帮忙看看是什么问题?怎么解决?
  • 关于全选的问题大家帮忙看看~
  • 大家去软件工程论坛里面去看看那,我发了700分的问题!!
  • redhat as3.0 java定时不能执行!请大家看看,问题在哪?
  • 虚心请教问题,帮我看看好吗?
  • 求人看看这个shell问题
  • 帮我看看我的sql语句写的有什么问题?
  • 关于arm交叉编译的问题,请帮忙看看问题出在什么地方?
  • 请帮我看看这个网络设置的问题
  • 大家帮我看看这个是什么问题
  • 大家能帮忙看看这个帖子的问题吗?
  • 看看这个代码问题在哪?
  • 帮忙看看下边代码有什么问题
  • 看看谁能解决这个问题?
  • 大家帮忙看看,是什么问题
  • 在浏览器里连接本机的菜鸟问题,帮忙看看!
  • 大侠帮忙看看,重定向问题
  • 关于用Jprint java打印的问题,请大家进来看看(路人甲、华仔哥)
  • 见不得人的问题,能帮我看看么
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3