Pascal队列程序在Android端Pascal N-IDE空指针报错但在线编译器正常
报错原因
该报错是Pascal N-IDE自带的语法解析器存在缺陷,你的代码逻辑本身没有问题,这也是代码可以在在线Pascal编译器正常运行的原因。你的代码中存在三个触发解析器缺陷的写法:
- 程序末尾重复编写了一个
end.,标准Pascal仅需要一个结尾的end.,宽松编译器会自动忽略冗余的end.,但N-IDE解析器处理冗余声明时会触发空指针异常 - 代码中误用了HTML转义字符替代原生Pascal运算符:
<>应为<>、>应为>,在线编译器会自动转义还原这些符号,N-IDE解析器无法识别转义字符,会出现类型解析失败 - 你将Pascal内置保留字
pointer声明为string类型变量,宽松编译器允许保留字重定义,N-IDE解析器处理该情况时会触发类型解析空指针
修复方案
按以下步骤修改代码即可在N-IDE正常运行:
- 删除代码末尾多余的第二个
end. - 全局替换所有HTML转义字符为原生Pascal运算符:
- 替换所有
<>为<> - 替换所有
>为>
- 替换所有
- 将全局变量
pointer : string;重命名为非保留字,比如antrian_output : string,同时替换所有调用该变量的位置
修复后程序运行效果和在线编译器完全一致。
内容的提问来源于stack exchange,提问作者us12glasses
相关产品推荐
相关产品推荐

