Skip to content

obj_addr() gives the address of the value that x points to; obj_addrs() gives the address of the components the list, environment, and character vector x point to.

Usage

obj_addr(x)

obj_addrs(x)

Arguments

x

An object

Details

obj_addr() has been written in such away that it avoids taking references to an object.

Examples

# R creates copies lazily
x <- 1:10
y <- x
obj_addr(x) == obj_addr(y)
#> [1] TRUE

y[1] <- 2L
obj_addr(x) == obj_addr(y)
#> [1] FALSE

y <- runif(10)
obj_addr(y)
#> [1] "0x5566cff368c8"
z <- list(y, y)
obj_addrs(z)
#> [1] "0x5566cff368c8" "0x5566cff368c8"

y[2] <- 1.0
obj_addrs(z)
#> [1] "0x5566cff368c8" "0x5566cff368c8"
obj_addr(y)
#> [1] "0x5566cff37898"

# The address of an object is different every time you create it:
obj_addr(1:10)
#> [1] "0x5566d1bb6920"
obj_addr(1:10)
#> [1] "0x5566d1c1f9d8"
obj_addr(1:10)
#> [1] "0x5566d1c86b70"