数组越界检测
前言111该文章用来记录一次简单的数组越界检测,查看实验手册
用到的知识仅有c++基础语法和两个简单的STL容器:vector和map以及一颗耐心
正文实验的一些小理解该实验主要可以分成两个部分:
一是数组和变量的定义(都存储在VarDelList中)
二是数组和变量的使用(都存储在ArrayUseList中)
注:grammartype我在此实验中并没有用到
实验的结构体解析
struct ArrExpr:
std::string id: 表示该数组的名称
int dimension:表示该数组的维度
std::vector<struct Expression*> length:
以我个人片面的理解来看,vector相当于一个加强版的数组,它可以在里面存各种类型的数据,比较好用
length[0]表示该数组的第一个维度的表达式。例如a[0],那么length[0]的值则为0
length[1]表示该数组的第二个维度的表达式。例如a(4)(5)(此处以()来代替[],避免关键符号),那么length[0]的值则为4,length[1]的值则为5
事实上,len ...