我有一个项目,我要重写为另一种语言,为了做到这一点 - 我想构建它。但是当我尝试构建它时,我收到“E1012:常量表达式违反子范围界限”。常量表达式违反子范围
我有这样的代码:
var ForTolkResult : array[0..2000] of char;
ForTolkResult[sizeof(ForTolkResult)-1] := chr(0); // Occurs here
从我的观点一切的观点是正确的在这里,sizeof(ForTolkResult) = 2000 * 1
,所以sizeof(ForTolkResult) - 1 = 1999
,这是一个数组的边界。 (但我是帕斯卡新手)所以这里有什么问题?
我试图通过Embarcadero C++ Builder来构建它。如果这个错误是编译器中的错误,我该如何关闭此检查?
'VAR ForTolkResult:数组[0..2000]焦炭;' 通过这个数组的方式有2001元素 –
好吧,如果包含2000 - 仍然适用相同的逻辑。 sizeof(F) - 1 = 2000这是在数组的边界 – Archeg