I met a line of code like "LOCAL Path[1000]:BYTE".
As far as I understand, it allocates space on the stack for a local variable, but I cannot understand why there are square brackets here. Is it an array or what?
Yes, its an array. From the docs, LOCAL
The labelId may be a simple variable or an array containing count elements, where count is a constant expression.