That depends very much on what that function is expecting. If you can supply some more information, we could be a little more specific. However, going with some basic assumptions...
The signature, according to the DLL node, is
long Read_Next_Data_RTx(long arg1, unsigned short int arg2, unsigned short int arg3, unsigned short int *arg4, long *arg5);
and arg3 has the "Num Data Words" wired to it, so I assume we are telling the function how large the array is. However, you also then initialize the size of the array to 5 times that.
Since the function isn't taking a double pointer for an argument, it doesn't seem to be allocating memory - at least for the array proper...
So, it seems like you are preallocating the read buffer in LabVIEW and passing that memory to the C routine. If it is expecting 16-bit integers of size arg3, you are giving it an array 5 times that size. If it is expecting some other sort of data structure, it would depend what that was...
I have no idea what the overwrite flag is telling us.
If what I said is correct, there aren't any problems doing this in a loop. You could be more efficient with the memory (such as not allocating it each loop) and such, but it would work.
However, this is a lot of guess work on my part. Any chance of getting more information on the function.