To: Torsten Hothorn <hothorn@amadeus.statistik.uni-dortmund.de>
Subject: Re: [R] .C and character
From: Douglas Bates <bates@stat.wisc.edu>
Date: 25 Mar 1999 09:11:47 -0600
In-Reply-To: Torsten Hothorn's message of "Thu, 25 Mar 1999 14:29:13 +0100 (MET)"
>>>>> "Torsten" == Torsten Hothorn <hothorn@amadeus.statistik.uni-dortmund.de> writes:
Torsten> Hi, I had a problem passing characters from R into c-code
Torsten> by dyn.load() and .C().
Torsten> test1.c: void R2Cstr(char *str) { printf("\n my char: %s
Torsten> \n", str[0]); }
You must declare str as char **str. The basic character vector in R
is a vector of strings, not a vector of characters. Notice that the
way you are printing it assumes that str[0] is char *, not char.
If you change your example to
test1.c:
void R2Cstr(char **str)
{
printf("\n my char: %s \n", str[0]);
}
test1.R:
dyn.load("mylib.so");
.C("R2Cdouble", as.character("test"));
it should work.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._