这个问题是我在学习stm32,使用c语言进行编程时遇到的,在此记录解决问题的方法,希望自己谨记的同时帮助大家,也希望能和大家一起打牢编程的基础知识。

我用一个简单地程序来解释这个问题。
问题:
调用数组的时候报错,数组下标超出范围
warning:subscript out of range

其实是你引用整个数组的问题,引用数组只用数组名就好了。

#include "iostream"
#include "stdio.h"
using namespace std;#define DoNothing 1
///这是一个三维数组,一共有2*4*8=64个元素
const unsigned int Haus[2][8][4] =
{128,0,255,127,128,1,255,63,
128,3,255,31,255,3,255,15,
193,3,255,7,193,31,255,3,
193,63,128,1,193,127,128,0,
0,0,127,0,0,0,127,0,
0,0,127,0,127,60,127,0,
127,60,127,0,127,0,127,0,
127,0,0,0,127,0,0,0
};///为了解释问题,写一个测试函数,在主函数中调用
void testfunction(const unsigned int Array[2][8][4])
{for(i1=0;i1<2,i1++){for(i2=0,i2<8,i2++){for(i3=0;i3<2,i3++){DoNothing;}}}
}
///在主函数调用测试的函数
int main()
{testfunction(Haus[2][8][4]);///testfunction(Haus);
}
//这样就会报错subscript out of range
//如果想整体调用这个三维数组,可以像注释那样子引用整个数组,只写数组名就可以了

其实这是一个很傻的错误,我这个函数想整体调用这个数组,那么只需要输入数组名作为函数参数就可以了,然而我却写了一个Haus[2][8][4],这个其实是超出范围的引用,很简单,但是在编程的时候,很容易头脑发热忽略掉。

C/C++, STM32,KEIL warning: #175-D: subscript out of range相关推荐

  1. 基于Ubuntu(x86)系统和STM32(Keil)编写C程序分别进行编程、验证

    文章目录 实验内容 一.基本概念 (一).全局变量 (二).局部变量 (三).堆和栈 二.编程验证 (一).基于Ubuntu用Linux系统编写C程序 (二).基于STM32用Keil编写C程序 三. ...

  2. Vector使用报错:Expression:vector subscript out of range

    做题的时候遇到一个简单的排序题目: 一共有个学生,每个学生有两门成绩,主课成绩和副课成绩,先按照主课成绩排序,相同的情况下按照副课成绩排序,然后按照排序后的名单输出前名的名单: 这个题目确实很简单,却 ...

  3. OpenCV:vector subscript out of range

    报错 vector subscript out of range 源码 // 查找轮廓vector<vector<Point>> contours;vector<Vec4 ...

  4. PCL学习——基于B样条曲线的曲面建模程序中报错:Expression:vector subscript out of range

    本人在学习PCL中基于B样条曲线的曲面建模时,按照教程中的代码进行实操时程序报错 Expression:vector subscript out of range 经研究排查,出现此问题是由于程序中某 ...

  5. STM32 Keil工程中使用abs函数报警告 warning: #223-D: function abs declared implicitly

    在头文件中包含#include <stdlib.h> 和#include在<math.h>即可消除警告.

  6. STM32 Keil快速新建工程

    一,创建项目文件夹 如图所示在本地磁盘新建项目文件夹. 二,打开Keil软件选择新建项目 三,创建Start文件夹 1.添加STM32汇编启动文件startup_stm32f10x_md.s 2.添加 ...

  7. STM32 KEIL里的MAP文件分析

    一.要让Keil生成map文件,要设置: 再重新编译,没有错误后,就会生成map文件了. 二.map文件中相关概念: 段(section) :描述映像文件的代码和数据块. RO:Read-Only的缩 ...

  8. STM32 KEIL 串口打印printf使用详解

    常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手. 在MDK环境中,我们常常使用MicroLIB+fputc的方式实现串口打印功能,即 ...

  9. stm32 keil下不重启进行仿真寻找bug原因

    新建一个load.ini文件,文件内容如下: LOAD %L INCREMENTAL 该文件用于加载 axf 文件到 KEIL 中,但是不会下载到单片机中,而 axf 文件可以方便我们进行源码级别的调 ...

  10. stm32 Keil编译后查看代码/内存占用空间,Flash/RAM占用大小,Code-Data,RO-Data,RW-Data,ZI-Data是什么含义

    1. 查看码Flash/内存RAM占用大小 工程编译后,双击上图中红框位置,会打开 .map文件,包含了各个函数和文件占用的空间大小和地址. 2. Code-Data,RO-Data,RW-Data, ...

最新文章

  1. nodejs、gulp调试工具node-inspector使用
  2. Love Java , Love IBM , Love Sun ( SunJiHai )
  3. 把SQL Server 错误日志导出为EXCEL 并发送到指定的ftp 或者 共享盘
  4. Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
  5. mockito mock测试框架
  6. Java 总结equals()方法
  7. centos7 dns配置_Linux Sever简单笔记(第十三堂课)之linux下的网络管理及DHCP配置的相关操作 - 我杨晓东太难了...
  8. 你模型的变量符合业务逻辑了吗
  9. 用homebrew 升级安装python3.7 之后系统的python版本还是旧的怎么办
  10. iOS Crash文件的解析
  11. xcode mysql库_Mac+MySQL+Xcode数据库配置
  12. java菜鸟教程+视频笔记
  13. 健康管理系统案列/APP/小程序/网站
  14. 智慧课堂实时监测系统
  15. 计算机算法设计与分析
  16. html学习 - 检测浏览器是否支持Canvas
  17. 蓝牙BLE协议分析【附代码实例】
  18. Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
  19. C语言实现简单卡尔曼滤波
  20. Unity 移动键Q的三种用法 For Mac,Windows类同

热门文章

  1. 示波器基本原理之一:带宽
  2. 外网访问家庭局域网方案,解决运营商100.x.x.x内网IP问题
  3. 表单验证:名称、电话号码、邮箱
  4. 企业内的ITSM软件/ITIL流程管理系统与OA系统有什么区别和关系?
  5. js 获取服务器时间——IE浏览器出现1970问题
  6. lof基金溢价率php源码,一文读懂LOF基金套利策略 LOF是球友们很喜欢的一类基金,这类基金不仅可以在场内进行高效买卖,而且还可以进行折溢价套利。不过这里面牵扯到很多细节,... - 雪球...
  7. C++大写字母转小写字母
  8. pdf转换器免费版下载
  9. Linux虚拟机(Centos7)桥接模式静态ip配置/克隆后MAC地址配置、主机名修改
  10. Android带动画进度条简单实现