Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pascal 常量表达式违反子范围界限_Pascal - Fatal编程技术网

Pascal 常量表达式违反子范围界限

Pascal 常量表达式违反子范围界限,pascal,Pascal,我有一个项目,我要重写成另一种语言,为了做到这一点,我想建立它。但当我尝试构建它时,我收到“E1012:常量表达式违反子范围边界” 我有这样的代码: var ForTolkResult : array[0..2000] of char; ForTolkResult[sizeof(ForTolkResult)-1] := chr(0); // Occurs here 在我看来,这里的一切都是正确的,sizeof(ForTolkResult)=2000*1,因此sizeof(ForTol

我有一个项目,我要重写成另一种语言,为了做到这一点,我想建立它。但当我尝试构建它时,我收到“E1012:常量表达式违反子范围边界”

我有这样的代码:

var ForTolkResult : array[0..2000] of char;

    ForTolkResult[sizeof(ForTolkResult)-1] := chr(0); // Occurs here
在我看来,这里的一切都是正确的,
sizeof(ForTolkResult)=2000*1
,因此
sizeof(ForTolkResult)-1=1999
,这是数组的边界。(但我对帕斯卡还不熟悉)那么这里怎么了


我试图通过NavaCabo C++ C++ Builder构建它。如果此错误是编译器中的错误,如何关闭此检查?

char是否真的占用了一个字节的内存?我的意思是,检查它是否是“Ansi”单字节字符而不是WideChar

无论如何,当您需要访问数组的最后一个索引时,最好使用

ForTolkResult[High(ForTolkResult)] := chr(0);

char真的占用一个字节的内存吗?我的意思是,检查它是否是“Ansi”单字节字符而不是WideChar

无论如何,当您需要访问数组的最后一个索引时,最好使用

ForTolkResult[High(ForTolkResult)] := chr(0);

var-ForTolkResult:char的数组[0..2000]顺便说一句,这个数组有2001个elementsOk,如果包含2000个元素,仍然应用相同的逻辑。sizeof(F)-1=2000,位于char的数组
var ForTolkResult:array[0..2000]的边界内顺便说一句,这个数组有2001个elementsOk,如果包含2000个元素,仍然应用相同的逻辑。sizeof(F)-1=2000,在数组的范围内。我在Pascal中不太方便,但我唯一需要的是能够运行它。将sizeof更改为High有帮助,所以谢谢!它仍然无法构建,因此我将尝试向开发它的开发人员介绍。谢谢我用Pascal不太方便,但我唯一需要的是能够运行它。将sizeof更改为High有帮助,所以谢谢!它仍然无法构建,因此我将尝试向开发它的开发人员介绍。谢谢