Open
Description
I'm using a writable::integers
to store results in an iterative process, where I want to use elements from the vector of integers in the process and update them. However, when I push_back()
a value to the vector, and then immediately check its value I will get some random number. Weirdly, when the vector is returned to R it seems to look fine. It is illustrated in the reprex below where I print the value that I just pushed back to the vector.
Am I doing something wrong?
library(cpp11)
#> Warning: package 'cpp11' was built under R version 4.3.3
cpp_function("
writable::integers test() {
writable::integers x((R_xlen_t)0);
for (int i = 0; i < 10; i++) {
x.push_back(i);
Rprintf(\"When I want to us the integer x[i], I get %i instead of %i\\n\", x[i], i);
}
return x;
}
")
test()
#> When I want to us the integer x[i], I get -1107622224 instead of 0
#> When I want to us the integer x[i], I get -1107622224 instead of 1
#> When I want to us the integer x[i], I get -1107622224 instead of 2
#> When I want to us the integer x[i], I get -1107622224 instead of 3
#> When I want to us the integer x[i], I get -1107622224 instead of 4
#> When I want to us the integer x[i], I get -1107622224 instead of 5
#> When I want to us the integer x[i], I get -1107622224 instead of 6
#> When I want to us the integer x[i], I get -1107622224 instead of 7
#> When I want to us the integer x[i], I get -1107622224 instead of 8
#> When I want to us the integer x[i], I get -1107622224 instead of 9
#> [1] 0 1 2 3 4 5 6 7 8 9
Created on 2025-04-26 with reprex v2.0.2
Metadata
Metadata
Assignees
Labels
No labels