[Rcpp-devel] Zero length vectors in R
Leonardo Silvestri
lsilvestri at ztsdb.org
Tue Jun 9 08:52:43 CEST 2020
Yes, there is an underlying pointer. You can simply test
'max_segments.size()' to see if you are allowed to dereference that
first element or not.
If you're interested in the exact R representation of vectors at
C-level, read R Internals
(https://cran.r-project.org/doc/manuals/r-release/R-ints.pdf).
If you are interested in the Rcpp wrappers around these vectors look at
the Rcpp header file 'vector.h' in the Rcpp package
(inst/include/Rcpp/vector/Vector.h).
On 6/9/20 1:04 AM, Akhila Chowdary Kolla wrote:
> Hello everyone,
>
> I am trying to test a package binsegRcpp. I pass the size of
> max_segments vector as zero it doesn't throw any segfault when I am
> trying to access the zeroth index element. Instead gives a garbage value
> or error like negative length vectors not allowed.
> Rcpp::List rcpp_binseg_normal
> (const Rcpp::NumericVector data_vec,
> const Rcpp::IntegerVector max_segments) {
> int kmax = max_segments[0];
>
> }
> Link to the package:
> https://github.com/tdhock/binsegRcpp/blob/master/src/rcpp_interface.cpp
>
> How is a zero-length vector represented in R? Does it still store a
> pointer to some location?
> If so Is there a way to get this segfault detected. I tried using
> rhub::check it doesn't give any error. I tried using sanitizers as well
> still no luck.
> Can someone please suggest a way to detect this in R.
>
> Thanks
>
>
>
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
More information about the Rcpp-devel
mailing list