On Mon, 2005-06-13 at 12:12 +0200, [EMAIL PROTECTED] wrote: > Scrive Prof Brian Ripley <ripley at stats.ox.ac.uk>: > > > You keep on sending similar messages -- this is at least the third. You > > need to find out where the segfault is occurring using gdb, and you have > > not told us. > > Sorry for the repeated post (in 2 different mailing lists). > Tnx for your suggestion. Now I think I've found the problem. Try this: > ////file foo.c > #include <R.h> > int **box; > void foo(){ > int i; > box = (int**)R_alloc(1, sizeof(int *)); > } > ///////////// > Compiled with R CMD SHLIB foo.c > In R: > >dyn.load("foo.so") > >.C("foo") > *Segmentation fault* > The problem disappears when the declaration of 'box' comes inside the function > foo... Is this a bug?
It gives you a hint about what the problem is. Your global variable "box" is conflicting with another symbol. I tracked this down to the ncurses library, to which R is linked under Linux, but not Windows. [EMAIL PROTECTED] ~]$ nm /usr/lib/libncurses.so | grep box - 07a6d036 T box This explains why your problem is platform-specific. You should declare "box" to be static. M. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel