[Rcpp-devel] Best way to return raw array

Davor Cubranic cubranic at stat.ubc.ca
Fri Sep 2 19:26:37 CEST 2011

On 2011-09-02, at 5:19 AM, Dirk Eddelbuettel wrote:

> Maybe this would do
>  double *p=third_party_function(nn);
>  NumericVector ret(nn);           // new memory
>  copy(ret.begin(), ret.end(), p); // untested
>  delete p;
>  return ret;
> | where third_party_function() is C legacy code that is documented as
> | returning a block of memory of size nn that the client should take
> | ownership of.

If third_party_function is really C legacy code, wouldn't the block of code be more likely to have been allocated with a 'malloc', and so you should release it with a 'free'? 



More information about the Rcpp-devel mailing list