Hello,
first thank you for your answers.
I did not read the whole pdf Writing R Extension, but I read this
strongly shortened introduction to this subject:
http://www.math.kit.edu/stoch/~lindner/media/.c.call%20extensions.pdf
I get the same error with this C-function:
void test(double * b, int l)
{
int i;
for(i=0; i < l ; i++) b[i] +=i;
}
I call it from R like this:
parameter = c(0,0,1,1,1,0,1.5,0.7,0,1.2,0.3);
.C("test", as.double(parameter), as.integer(11))
The programm crashes even in this simple case.
Where can be the error?
Thanks
Grigory Alexandrovich
Answer 1
Without knowing that C code, we cannot know. Have you read Writing R Extensions
carefully? I.e. take care with memory allocation and printing as mentioned in
the manual.
Uwe Ligges
Answer 2
This looks like a classic case of not reading the manual, and then compounding it by not
reading the posting guide. The manual would be the "Writing R Extensions" pdf
that comes with R or you can google it. The posting guide is referenced at the bottom of
this and every other posting on this mailing list.
There are nearly an infinite variety of errors that can lead to a "crash", so
it is really unreasonable of you to pose this question this way and expect constructive
assistance.
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
Answer 3
It's impossible to say, with such minimal information, but a reasonable
guess is that there is a problem with the declaration of "x" and "y" in
foo.c. These would (I think) need to be declared as double *, not double,
when foo is called from .C().
cheers,
Rolf Turner
Answer 4
Hi,
As other have said, it's very difficult to help you without an example
+ code to know what you are talking about.
That having been said, it seems as if you are just getting your feet
wet in this R <--> C bridge, and I'd recommend you checkout the "Rcpp"
and "inline" package to help make your life a lot easier ...
-steve
On 04.10.2011 14:04, Grigory Alexandrovich wrote:
Hello,
I wrote a function in C, which works fine if called from the
main-function in C.
But as soon as I try to call this function from R like .C('foo',
as.double(x), as.integer(y)), the programm crashes.
I created a dll with the cmd command R --arch x64 CMD SHLIB foo.c and
loaded it into R with dyn.load().
What can be the cause of such behaviour?
Again, the C-funcion itself works, but not if called from R.
Thanks
Grigory Alexandrovich
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.