[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 

If you are interested in the Rcpp wrappers around these vectors look at 
the Rcpp header file 'vector.h' in the Rcpp package 

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