:orphan:
# MatRestoreRow
Frees any temporary space allocated by `MatGetRow()`.
## Synopsis
```
#include "petscmat.h"
PetscErrorCode MatRestoreRow(Mat mat, PetscInt row, PetscInt *ncols, const PetscInt *cols[], const PetscScalar *vals[])
```
Not Collective
## Input Parameters
- ***mat -*** the matrix
- ***row -*** the row to get
- ***ncols -*** the number of nonzeros
- ***cols -*** the columns of the nonzeros
- ***vals -*** if nonzero the column values
## Notes
This routine should be called after you have finished examining the entries.
This routine zeros out `ncols`, `cols`, and `vals`. This is to prevent accidental
us of the array after it has been restored. If you pass `NULL`, it will
not zero the pointers. Use of `cols` or `vals` after `MatRestoreRow()` is invalid.
## Fortran Notes
The calling sequence is
```none
MatRestoreRow(matrix,row,ncols,cols,values,ierr)
Mat matrix (input)
integer row (input)
integer ncols (output)
integer cols(maxcols) (output)
double precision (or double complex) values(maxcols) output
```
Where maxcols >= maximum nonzeros in any row of the matrix.
In Fortran `MatRestoreRow()` MUST be called after `MatGetRow()`
before another call to `MatGetRow()` can be made.
## See Also
[](ch_matrices), `Mat`, `MatGetRow()`
## Level
advanced
## Location
src/mat/interface/matrix.c
## Examples
src/ksp/ksp/tutorials/ex19.c
src/ksp/ksp/tutorials/ex59.c
src/mat/tutorials/ex12.c
src/mat/tutorials/ex16.c
## Implementations
MatRestoreRow_MPIAdj in src/mat/impls/adj/mpi/mpiadj.c
MatRestoreRow_MPIAIJ in src/mat/impls/aij/mpi/mpiaij.c
MatRestoreRow_SeqAIJ in src/mat/impls/aij/seq/aij.c
MatRestoreRow_MPIBAIJ in src/mat/impls/baij/mpi/mpibaij.c
MatRestoreRow_SeqBAIJ in src/mat/impls/baij/seq/baij.c
MatRestoreRow_ConstantDiagonal in src/mat/impls/cdiagonal/cdiagonal.c
MatRestoreRow_MPIDense in src/mat/impls/dense/mpi/mpidense.c
MatRestoreRow_SeqDense in src/mat/impls/dense/seq/dense.c
MatRestoreRow_Htool in src/mat/impls/htool/htool.cxx
MatRestoreRow_HYPRE in src/mat/impls/hypre/mhypre.c
MatRestoreRow_SeqKAIJ in src/mat/impls/kaij/kaij.c
MatRestoreRow_MPIKAIJ in src/mat/impls/kaij/kaij.c
MatRestoreRow_MPISBAIJ in src/mat/impls/sbaij/mpi/mpisbaij.c
MatRestoreRow_SeqSBAIJ in src/mat/impls/sbaij/seq/sbaij.c
MatRestoreRow_SeqSELL in src/mat/impls/sell/seq/sell.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matrix.c)
[Index of all Mat routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)