码迷,mamicode.com
首页 > 编程语言 > 详细

c++下标越界问题探讨

时间:2017-05-17 20:59:33      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:起源   需要   cto   文章   完全   编译   一段   vector   为什么   

  起源于我两次遇到的问题:

    第一次,需要在程序中加一段使程序崩溃的代码,我加了一段数组越界的代码。类似于

        int a[3] = {0};

        a[4] = 1;

    在win32平台,使用Qt Creator开发环境编译运行,程序成功在运行时挂掉。然后一致到linux平台下,使用g++编译运行,程序正常运行,完全没挂掉。

    第二次,代码中使用vector,使用下标vector[i]访问某一个值,不慎导致i为-1。同样的在linux平台,g++编译运行,一切正常,也得到了正确的运行结果。同样的代码在win32上就挂掉了。

 

    所以看起来linux平台或者g++编译器对下标越界问题有自己的处理,导致程序不挂。而win32平台或该平台上的编译器对下标越界不进行处理,程序挂掉。

    还未验证到底为什么会导致这样的情况,希望看到该文章的你如果有想法或知道原因可以告诉我^ ^

c++下标越界问题探讨

标签:起源   需要   cto   文章   完全   编译   一段   vector   为什么   

原文地址:http://www.cnblogs.com/songshuguiyu/p/6869241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!