Safe and efficient copying between blocks of memory.
There are several ways of storing and accessing blocks of memory in an OCaml program, including
- bytes and string values for mutable and immutable strings that reside in the OCaml heap
- bigarray values for reference-counted blocks that reside in the OCaml heaps
- Ctypes ptr values that can be used to address arbitrary addresses using typed descriptions of the memory layout.
- Ctypes array values that provide bounds-checked access to ptr-addressed memory.
The Memcpy module provides functions for safely and efficiently copying blocks of memory between these different representations.