Skip to main content
`Ctrl`+`K`

# PetscMemcpy

Copies `n` bytes, beginning at location `b`, to the space beginning at location `a`. The two memory regions CANNOT overlap, use `PetscMemmove()` in that case.

## Synopsis

    static inline PetscErrorCode PetscMemcpy(void *a, const void *b, size_t n)

Not Collective, No Fortran Support

## Input Parameters

- b - pointer to initial memory space

- n - length (in bytes) of space to copy

## Output Parameter

- a - pointer to copy space

Compile Options:

- `PETSC_PREFER_DCOPY_FOR_MEMCPY` - cause the BLAS `dcopy()` routine to be used for memory copies on double precision values.

- `PETSC_PREFER_COPY_FOR_MEMCPY` - cause C code to be used for memory copies on double precision values.

- `PETSC_PREFER_FORTRAN_FORMEMCPY` - cause Fortran code to be used for memory copies on double precision values.

## Notes

Prefer `PetscArraycpy()`

This routine is analogous to `memcpy()`.

## See Also

`PetscMemzero()`, `PetscMemcmp()`, `PetscArrayzero()`, `PetscArraycmp()`, `PetscArraycpy()`, `PetscMemmove()`, `PetscStrallocpy()`

## Level

intermediate

## Location

include/petscstring.h

## Examples

src/ts/tutorials/ex11.c
src/ksp/ksp/tutorials/ex74.c
src/ts/tutorials/ex10.c

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages