Hi all, I'm completely new to R and Rcpp, and I thought I'd just make a simple program to see how Rcpp works. Here is the code:
<code> #include <Rcpp.h> #include <cstdio> #include <cstdlib> #include <iostream> RcppExport void get_weights(int num_of_numbers, double* numbers); RcppExport void get_weights(int num_of_numbers, double* numbers) { std::cerr << "--------" << num_of_numbers << "--------------\n"; Rcpp::NumericVector vec(1); } int main(int argc, char* argv[]) { int num_of_numbers = argc - 1; double* numbers = new double[num_of_numbers]; for(int i = 1; i < argc; ++i) { numbers[i-1] = atof(argv[i]); std::cerr << numbers[i-1] << "\n"; } get_weights(num_of_numbers, numbers); return 0; } </code> I can compile and link this code without any problems. However, when I run it, I get a segfault in get_weights. I traced the segfault using gdb, and the problem sees to come from this: <code> (gdb) run 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Starting program: /home/patricky/tmp/stl 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 [Thread debugging using libthread_db enabled] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 --------21-------------- Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6c3ed70 in ?? () from /usr/lib64/R/lib/libR.so (gdb) up #1 0x00007ffff6c4049b in Rf_allocVector () from /usr/lib64/R/lib/libR.so (gdb) #2 0x0000000000401814 in Vector (this=0x7fffffffdf80, size=@0x7fffffffdf9c) at /usr/share/lib/R/x86_64-pc-linux-gnu-library/2.12/Rcpp/include/Rcpp/vector/Vector.h:130 130 RObject::setSEXP( Rf_allocVector( RTYPE, size) ) ; </code> I've rather stumped at this problem, and would appreciate any help that you guys can provide. Thanks a lot. Patrick
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel