///
/// [`Copy`]: crate::marker::Copy
/// [`read`]: crate::ptr::read
-/// [read-ownership]: crate::ptr::read
-/// [valid]: crate::ptr
+/// [read-ownership]: crate::ptr::read#ownership-of-the-returned-value
+/// [valid]: crate::ptr#safety
///
/// # Examples
///
///
/// [`Copy`]: crate::marker::Copy
/// [`read`]: crate::ptr::read
-/// [read-ownership]: crate::ptr::read
-/// [valid]: crate::ptr
+/// [read-ownership]: crate::ptr::read#ownership-of-the-returned-value
+/// [valid]: crate::ptr#safety
///
/// # Examples
///
/// Note that even if the effectively copied size (`count * size_of::<T>()`) is
/// `0`, the pointer must be non-NULL and properly aligned.
///
-/// [valid]: crate::ptr
+/// [valid]: crate::ptr#safety
///
/// # Examples
///