Provided that the input array dimensional sizes are the same as the output ones, which in your code has to be the case in order to not crash it, what you try to do can be done a lot more simple by just doing this:
Configuring the Call Library Node Parameter as follows:
Data Type: Signed 32-bit Integer (or whatever your array contains).
Array Format: Array Data Pointer
The allocated memory area passed into the function will be row * columns element large so make sure to never ever try to write beyond that. For that reason it is usual to also pass in the array sizes to the function over extra parameters so that the code inside the function can check to not write beyond the end of the passed in buffer.