C/C++, STM32,KEIL warning: #175-D: subscript out of range
这个问题是我在学习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相关推荐
- 基于Ubuntu(x86)系统和STM32(Keil)编写C程序分别进行编程、验证
文章目录 实验内容 一.基本概念 (一).全局变量 (二).局部变量 (三).堆和栈 二.编程验证 (一).基于Ubuntu用Linux系统编写C程序 (二).基于STM32用Keil编写C程序 三. ...
- Vector使用报错:Expression:vector subscript out of range
做题的时候遇到一个简单的排序题目: 一共有个学生,每个学生有两门成绩,主课成绩和副课成绩,先按照主课成绩排序,相同的情况下按照副课成绩排序,然后按照排序后的名单输出前名的名单: 这个题目确实很简单,却 ...
- OpenCV:vector subscript out of range
报错 vector subscript out of range 源码 // 查找轮廓vector<vector<Point>> contours;vector<Vec4 ...
- PCL学习——基于B样条曲线的曲面建模程序中报错:Expression:vector subscript out of range
本人在学习PCL中基于B样条曲线的曲面建模时,按照教程中的代码进行实操时程序报错 Expression:vector subscript out of range 经研究排查,出现此问题是由于程序中某 ...
- STM32 Keil工程中使用abs函数报警告 warning: #223-D: function abs declared implicitly
在头文件中包含#include <stdlib.h> 和#include在<math.h>即可消除警告.
- STM32 Keil快速新建工程
一,创建项目文件夹 如图所示在本地磁盘新建项目文件夹. 二,打开Keil软件选择新建项目 三,创建Start文件夹 1.添加STM32汇编启动文件startup_stm32f10x_md.s 2.添加 ...
- STM32 KEIL里的MAP文件分析
一.要让Keil生成map文件,要设置: 再重新编译,没有错误后,就会生成map文件了. 二.map文件中相关概念: 段(section) :描述映像文件的代码和数据块. RO:Read-Only的缩 ...
- STM32 KEIL 串口打印printf使用详解
常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手. 在MDK环境中,我们常常使用MicroLIB+fputc的方式实现串口打印功能,即 ...
- stm32 keil下不重启进行仿真寻找bug原因
新建一个load.ini文件,文件内容如下: LOAD %L INCREMENTAL 该文件用于加载 axf 文件到 KEIL 中,但是不会下载到单片机中,而 axf 文件可以方便我们进行源码级别的调 ...
- stm32 Keil编译后查看代码/内存占用空间,Flash/RAM占用大小,Code-Data,RO-Data,RW-Data,ZI-Data是什么含义
1. 查看码Flash/内存RAM占用大小 工程编译后,双击上图中红框位置,会打开 .map文件,包含了各个函数和文件占用的空间大小和地址. 2. Code-Data,RO-Data,RW-Data, ...
最新文章
- nodejs、gulp调试工具node-inspector使用
- Love Java , Love IBM , Love Sun ( SunJiHai )
- 把SQL Server 错误日志导出为EXCEL 并发送到指定的ftp 或者 共享盘
- Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
- mockito mock测试框架
- Java 总结equals()方法
- centos7 dns配置_Linux Sever简单笔记(第十三堂课)之linux下的网络管理及DHCP配置的相关操作 - 我杨晓东太难了...
- 你模型的变量符合业务逻辑了吗
- 用homebrew 升级安装python3.7 之后系统的python版本还是旧的怎么办
- iOS Crash文件的解析
- xcode mysql库_Mac+MySQL+Xcode数据库配置
- java菜鸟教程+视频笔记
- 健康管理系统案列/APP/小程序/网站
- 智慧课堂实时监测系统
- 计算机算法设计与分析
- html学习 - 检测浏览器是否支持Canvas
- 蓝牙BLE协议分析【附代码实例】
- Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
- C语言实现简单卡尔曼滤波
- Unity 移动键Q的三种用法 For Mac,Windows类同
热门文章
- 示波器基本原理之一:带宽
- 外网访问家庭局域网方案,解决运营商100.x.x.x内网IP问题
- 表单验证:名称、电话号码、邮箱
- 企业内的ITSM软件/ITIL流程管理系统与OA系统有什么区别和关系?
- js 获取服务器时间——IE浏览器出现1970问题
- lof基金溢价率php源码,一文读懂LOF基金套利策略 LOF是球友们很喜欢的一类基金,这类基金不仅可以在场内进行高效买卖,而且还可以进行折溢价套利。不过这里面牵扯到很多细节,... - 雪球...
- C++大写字母转小写字母
- pdf转换器免费版下载
- Linux虚拟机(Centos7)桥接模式静态ip配置/克隆后MAC地址配置、主机名修改
- Android带动画进度条简单实现