Functions with prototypes of the form SEXP myfunc(SEXP, SEXP, ..., SEXP) must be called via .Call(), not .C().
Also, you declared myfunction as returning SEXP but returned nothing. Try ending the function with return R_NilValue; You should change the default compiler flags to report all warnings (-Wall if you are using gcc). And you left off a line or two of C code that must have been there, or you code would have compiled due to errors #include <R.h> /* not needed if Rinternals is included */ #include <Rinternals.h> Study 'Writing R Extensions' and work through the examples in it. In particular, look at section 5.9. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of teazrq > Sent: Wednesday, October 12, 2011 7:52 PM > To: r-help@r-project.org > Subject: Re: [R] pass an element in a list() from R to C > > so, I did this: > > B= list("a" = 1, "b" = 2, "c" = 3) > > .C("myfunction", B) > > > the c code is : > > SEXP myfunction(SEXP matrix_temp) > { > Rprintf("this element is %6.3f", REAL(VECTOR_ELT(matrix_temp,1))[0]); > } > > but after runing the R code, it says Error: VECTOR_ELT() can only be applied > to a 'list', not a 'NULL' > I guess this is because I did not acturally pass a list to the c function, > but why is that? > > -- > View this message in context: > http://r.789695.n4.nabble.com/pass-an-element-in-a-list-from-R-to-C- > tp3900221p3900426.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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.