[Rd] returning vectors of unknown size from C (with .C)
murdoch at stats.uwo.ca
Sat Apr 26 03:19:25 CEST 2008
Ramon Diaz-Uriarte wrote:
> Dear All,
> In a package, I am using ".C" to call some C functions. In one case,
> the number of elements of the return vectors are not known in R before
> the C call. (Two of the vectors are integers, the third is vector of
> character strings).
> Passing from R a vector of the maximum possible size would be a huge
> waste. I understand one alternative is to use ".Call", but I'd rather
> avoid it if I can (all of the code seems working except for the return
> of values into R). Another would be to write to a file from C and then
> read that into R, but this looks very ugly. Are there any other
> reasonable alternatives, or should I just use .Call?
.Call is usually easiest, but another possibility is to have two entry
points: one to calculate how much space you need, a second to pass in a
vector that's the right size to hold the result.
More information about the R-devel