我有一个项目要重写为另一种语言,为了做到这一点 - 我想构建它。但是当我尝试构建它时,我收到“E1012:常量表达式违反子范围界限”。
我有这样的代码:
var ForTolkResult : array[0..2000] of char;
ForTolkResult[sizeof(ForTolkResult)-1] := chr(0); // Occurs here
从我的角度来看,这里的一切都是正确的sizeof(ForTolkResult) = 2000 * 1
,所以sizeof(ForTolkResult) - 1 = 1999
,这是在数组的范围内。(但我是 Pascal 的新手)那么这里有什么问题?
我正在尝试通过 Embarcadero C++ Builder 构建它。如果此错误是编译器中的错误,我该如何关闭此检查?