Is it safe to call C code from R that mallocs memory for a structure, returning a pointer to that structure via some 'raw()' parameter. Then, pass that pointer to another C routine, and finally free the malloced memory by passing the raw() data to another C routine?
I've written some code that does this, I'm just not sure if anything could go wrong. The worst I can come up with is a memory leak if the structure's memory isn't freed - possibly because the R is interrupted. R isn't going to stomp on memory that's been malloced by an included C routine between .C calls though, is it? Barry [[ gory details: R code calls a C routine with .C passing a 4-byte (because 4 is sizeof(char*) in my architecture) 'raw' object, the C code then mallocs the structure and copies the address of the structure into the 4 bytes that the raw object (which appears as a char* in the C routine argument list) points to. This gets returned back to R. Another option would be to create a raw object of the right size to store my structure, pass that to C and not malloc anything in C. But that would mean altering the C code which I want to do as little as possible. gory code available on request. ]] ______________________________________________ R-help@stat.math.ethz.ch 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.