我有一個項目,我要重寫爲另一種語言,爲了做到這一點 - 我想構建它。但是當我嘗試構建它時,我收到「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