It is allowed, but in BP it will be treated as an output parameter, so you can’t use it when calling the function like you would in C++;
You can use two array parameters, one as input, the other as output:
UFUNCTION(BlueprintCallable)
void ChangeArray(TArray<int32> InArray, TArray<int32> &OutArray);
And then you can use it like this: