<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>Thank you very much for your answers.</div><div>Actually, it is really helpful.</div><div>Best,</div><div><br data-mce-bogus="1"></div><div>Mounia</div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>De: </b>"edd" <edd@debian.org><br><b>À: </b>"Qiang Kou" <qkou@qkou.info><br><b>Cc: </b>"mounia zaouche" <mounia.zaouche@agroparistech.fr>, "rcpp-devel" <rcpp-devel@lists.r-forge.r-project.org><br><b>Envoyé: </b>Jeudi 13 Septembre 2018 22:55:58<br><b>Objet: </b>Re: [Rcpp-devel] questions Rcpp<br></div><br><div data-marker="__QUOTED_TEXT__">On 13 September 2018 at 08:51, Qiang Kou wrote:<br>| Hi, Mounia,<br>| <br>| In Rcpp, using std::vector is preferred.<br><br>Building on what Qiang said: If your array is a simple double[] then you can<br>switch to std::vector<double> easily as aligning your array with the internal<br>array. (Ditto for most other arrays of base types.)<br><br>Or conversely, your can use Rcpp and transfer data from R down to C++ code<br>using a std::vector<double> and then access the address of the initial<br>element for your pointer.  But the better approach is to use std::vector<><br>(Or our Rcpp::NumericVector).<br><br>One reason is that Rcpp uses the .Call() interface to R, and it does _not_<br>support plain C pointers.  Only the older (and not recommended anymore) .C()<br>interface does.  But then you have to give up all of Rcpp as well ...<br><br>| It is still possible to use pointers, however, I am afraid you need to<br>| write your "as" and "wrap" by yourself. You can find how to develop them in<br>| our documents.<br><br>And as<>() and wrap() are really intended for more complex data structures<br>and not for pointers to atomistic C types. And yes, you would have work to do<br>for new types.<br><br>Hope this helps, Dirk<br> <br>| Best,<br>| <br>| Qiang Kou<br>| <br>| On Thu, Sep 13, 2018 at 4:15 AM Mounia ZAOUCHE <<br>| mounia.zaouche@agroparistech.fr> wrote:<br>| <br>| ><br>| > Dear all.<br>| ><br>| > I write C++ programs and I'm currently trying to interface them with R.<br>| ><br>| > I have two issues :<br>| ><br>| > Is it possible to interface a function which has an argument that is a<br>| > pointer (standing for an array) ?<br>| ><br>| > I also wrote a function whose aim is to allocate (and fill) an array of<br>| > values. In this purpose, this function takes as an argument the address of<br>| > the array to be allocated and is thus typed as a pointer of pointer.<br>| > Is it possible to handle such a type and to allocate the required memory<br>| > inside this function interfaced in R?<br>| ><br>| > Thank you in advance.<br>| ><br>| > Mounia Zaouche.<br>| ><br>| > _______________________________________________<br>| > Rcpp-devel mailing list<br>| > Rcpp-devel@lists.r-forge.r-project.org<br>| > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel<br>| _______________________________________________<br>| Rcpp-devel mailing list<br>| Rcpp-devel@lists.r-forge.r-project.org<br>| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel<br><br>-- <br>http://dirk.eddelbuettel.com | @eddelbuettel | edd@debian.org<br></div></div></body></html>