Re: [Rd] array indexes in C

From: Tamas K Papp <tpapp_at_princeton.edu>
Date: Sun 19 Nov 2006 - 15:01:23 GMT

Hi Ben,

Thanks for your answer. I looked at the status of VLA on the GCC homepage and it appears to be "broken". [1] Do you think that the code below still works? Or are you using a different compliler?

Thanks,

Tamas

[1] http://gcc.gnu.org/c99status.html

On Sun, Nov 19, 2006 at 09:55:17AM -0500, Benjamin Tyner wrote:
> Tamas,
>
> You could write convenience functions, but I have used the C99 mechanism
> for variable length arrays with no problems calling from R. One thing
> you have to keep in mind though is that (as far as I know) the
> dimensions must be passed before the array reference. So for example,
>
> r <- .C("foo",
> as.integer(ni),
> as.integer(nj),
> x = double(ni * nj),
> ...)
>
> with your function defined as
>
> void foo(int *ni, int *nj, double x[*ni][*nj])
> {
> ...
>
> Then in C you can access elements of x via x[3][4], for example.
>
> Ben
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon Nov 20 02:05:01 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Tue 21 Nov 2006 - 11:30:48 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.