zoukankan      html  css  js  c++  java
  • c++下标越界问题探讨

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

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

            int a[3] = {0};

            a[4] = 1;

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

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

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

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

  • 相关阅读:
    扩欧(exgcd讲解)
    Django组件之forms
    Django组件之用户认证
    Django之中间件
    Django之cookie与session
    Django组件之分页器
    Django之Ajax
    Django之模型层2
    Django之模型层
    Django之模板层
  • 原文地址:https://www.cnblogs.com/songshuguiyu/p/6869241.html
Copyright © 2011-2022 走看看