Re: [Rd] array indexes in C

From: Benjamin Tyner <btyner_at_stat.purdue.edu>
Date: Mon 20 Nov 2006 - 13:41:39 GMT

Tamas,

I am using GCC with no problems. You can find more examples at http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Variable-Length.html

Ben
> 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 Tue Nov 21 00:52:31 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 - 07:30:46 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.