C语言对数组下标不做检查,指针常常越界访问;我们编程时要特别注意。

一、示范代码

#include

#include

int a[10];

int b[10];

void main()

{

memset(a,0,sizeof(int)*10);

memset(b,0,sizeof(int)*10);

a[10]=10;

cout<

}

在上例中,编译链接通过,但程序运行结果 b[0]=10;

输出a[10]和b[0]地址:

#include

#include

int a[10];

int b[10];

void main()

{

cout<

cout<

}

结果:

a[10] 地址为 0x41454c

b[0]地址为    0x41454c

备注:上述程序在vc6.0下编译,不同编译系统地址值可能不同;但a[10]和b[0]地址值始终相同。

二、解释

连续定义的全局变量在内存中是连续存放的,同时C对数组下标不做检查;指针越界访问内存,编译器不会提示错误。利用越界的指针读写内存,轻则程序结果错误,重则直接导致程序崩溃。

linux怎么检查越界,C语言指针越界访问示例相关推荐

  1. c语言 指针 越界,关于指针错误使用带来的问题――数组越界

    摘要:该文从指针在C语言中的作用入题,介绍了指针使用过程中常见的几种错误,并提出了改进方法.然后针对指针与数组,总体介绍了它们之间的联系与转换,并详细描述了数组越界的两类错误,最后我们经过详细分析,模 ...

  2. c语言指针很危险,浅谈C语言中指针使用不当的危险性.doc

    浅谈C语言中指针使用不当的危险性.doc 第 19 卷 Vol . 19 第 2 期 No . 2 洛阳师专学报 Journal of Luoyang Teachers College 2000 年 ...

  3. linux 内存越界判断_linux 内存越界判断

    printf("aaa\n");这不是在打印a字符吗?,而且,只有段越界才会引起进程的段错误信号,你访问的地址仍然在进程的合法空间范围内,当然空指针这类地址基本不合法.回复 @xx ...

  4. 考虑不周和指针越界1156: 单数变复数

    题目 1156: 单数变复数 时间限制: 1 Sec 内存限制: 128 MB 提交: 5186 解决: 3275 输入一个名词英语单词,按照英语语法规则把单数变成复数.规则如下: (1) 以辅音字母 ...

  5. Linux快速定位内存泄露和内存越界

    在日常开发中,遇到段错误是很常见的事,其中一种情况 Out of memory(OOM),内存泄露问题一般不好查找,但是可以借助工具来快速定位. 这里介绍的工具是valgrind,这个工具在build ...

  6. C语言数组越界及溢出

    1)越界 C语言数组是静态的,不能自动扩容,当下标小于零或大于等于数组长度时,就发生了越界,访问到数组以外的内存. 调试以下代码 #include <stdio.h> int main() ...

  7. Linux 操作系统和C语言(详解)

    一.Linux操作系统 (一)认识Linux操作系统 1.操作系统 定义:本质是运行在计算机上的软件程序 组成:内核 + 外壳(图形化界面+软件工具...) 作用:向用户提供操作接口,管理计算机硬件和 ...

  8. 如何深入掌握C语言指针(详解)

    目录 前言 指针是什么 概念 单元大小与编址 指针和指针类型 指针类型 指针+-整数 指针的解引用 野指针 指针未初始化 指针越界访问 指针指向的空间释放 如何规避野指针 指针运算 指针+-整数 指针 ...

  9. c语言指针笔试面试题,c语言指针面试常见问题

    c语言指针面试常见问题 指针的使用,一直是c语言面试题中必考的部分,因为指针本身使用的复杂性与普适性,所以考点非常多,而且也可以与其他知识相互结合,因此我们将会使用五篇专题的篇幅来介绍指针. 分析下面 ...

最新文章

  1. CV_8UCV_32FCV_32S
  2. 使用struts2+JQuery实现的简单的ajax例子
  3. c语言存储多个数据,C语言中如何求数组真实存有数据的元素个数
  4. windows下安装pygtk报g_assertion_message无法定位libglib-2.0-0.dll错误解决
  5. idea中build项目之后生成的target看不见
  6. python运行不了程序代码_python怎么运行代码程序
  7. web developer tips (28):CSS class 也支持“转到定义”
  8. 匹配正则_程序员入门基础:python正则表达式贪婪匹配和非贪婪匹配
  9. ubuntu 安装 wifi 驱动_论如何在 MacBook Pro 安装 Ubuntu 18.04(解决 wifi、触摸板、键盘驱动)...
  10. 快速入门开源深度学习框架
  11. JTAG接口定义与其他简介
  12. Matlab中xlsread 函数读取excel表格数据或者字符串
  13. Perl练习01之计算一条read的ATGC个数GC含量格式化输出
  14. 被syn攻击了怎么办,如何预防服务器被被syn攻击
  15. Discuz X2.0数据字典(数据库表作用解释)
  16. Android开发 mobi格式,Android MobIM的免费使用方法
  17. Microsoft Defender SmartScreen 阻止了无法识别的应用启动
  18. 分享160个ASP源码,总有一款适合您
  19. vue中identify(生成图片验证码)插件的配置和使用
  20. Typora 保姆级安装教程

热门文章

  1. 技术人攻略访谈三十七-程显峰:IT病得有多重?技术圈交际花谈研发管理怪现状
  2. 微型计算机2017年12月,统计局:2017年12月规模以上工业增加值增长6.2%
  3. java修改线程池名称_自定义线程池的名称(ThreadPoolExecutor)
  4. linux 内核驱动中对文件的读写
  5. 热门软件看点:QQ和它的对手们 收藏 转载
  6. UI复习练习——防QQ的登录下拉列表
  7. Guava缓存过期的一些坑
  8. NSIS Error的解决办法
  9. 【玩转华为云】手把手教你利用ModelArts识别偶像的声音
  10. 一个13年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害