Hi Bill, You were right, thanks!
Now I have: int size = 5000; double *matrix = (double *) R_alloc(size^2, sizeof(double)); Which works for larger sizes! But now I have discovered a new problem with it. When I go to set the value of the elements it *sometimes* crashes: for (i = 0; i < (size - 1); i++) { for (j = i; j < (size - 1); j++) { *(matrix + j*length + i) = 5; } } About ever tenth time I run this code I get: R(2535,0xa07f64e0) malloc: *** error for object 0x16830404: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug Any idea why this is happening? Thanks again!, Erik On Apr 10, 2010, at 5:35 PM, William Dunlap wrote: >> -----Original Message----- >> From: r-help-boun...@r-project.org >> [mailto:r-help-boun...@r-project.org] On Behalf Of Erik Wright >> Sent: Saturday, April 10, 2010 3:23 PM >> To: r help >> Subject: [R] .Call function crashes initializing matrix >> >> Hello, >> >> I have a C function that I call from R using .Call. I >> recently discovered a bug in my code, and I am not sure if it >> is a problem with what I am doing in C or if it has something >> to do with my use of .Call. >> >> I have narrowed my problem down to these two C statements: >> int size = 5000; >> double matrix[size][size]; >> >> When I run this in R it crashes, with this message: >> *** caught segfault *** >> address 0xb4141d70, cause 'memory not mapped' > > You may be overflowing the stack. Allocate > the space for 'matrix' with the allocation > functions described in section 5.9 of "Writing > R Extensions". They allocate space on the 'heap', > which has much more space than the stack (where > space for 'automatic' variables is allocated). > Typical stack sizes are on the order of few > megabytes and typical heap sizes are in the gigabytes. > > Bill Dunlap > Spotfire, TIBCO Software > wdunlap tibco.com > >> >> It has no problem when size is smaller, like 50. Any idea >> what is going on? >> >> Thanks!, >> Erik >> >> >> sessionInfo() >> R version 2.10.1 (2009-12-14) >> i386-apple-darwin9.8.0 >> >> locale: >> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8 >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods >> [7] base >> >> ______________________________________________ >> 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.