Actual source code: ex10.c

  1: /*$Id: ex10.c,v 1.13 2001/03/23 23:20:59 balay Exp $*/

  3: /* 
  4:    Tests PetscMemmove()
  5: */

 7:  #include petsc.h

 11: int main(int argc,char **argv)
 12: {
 13:   int i,*a,*b,ierr;
 14:   PetscInitialize(&argc,&argv,(char *)0,0);

 16:   PetscMalloc(10*sizeof(int),&a);
 17:   PetscMalloc(20*sizeof(int),&b);

 19:   /*
 20:       Nonoverlapping regions
 21:   */
 22:   for (i=0; i<20; i++) b[i] = i;
 23:   PetscMemmove(a,b,10*sizeof(int));
 24:   PetscIntView(10,a,0);

 26:   PetscFree(a);

 28:   /*
 29:      |        |                |       |
 30:      b        a               b+15    b+20
 31:                               a+10    a+15
 32:   */
 33:   a = b + 5;
 34:   PetscMemmove(a,b,15*sizeof(int));
 35:   PetscIntView(15,a,0);
 36:   PetscFree(b);

 38:   /*
 39:      |       |                    |       |
 40:      a       b                   a+20   a+25
 41:                                         b+20
 42:   */
 43:   PetscMalloc(25*sizeof(int),&a);
 44:   b = a + 5;
 45:   for (i=0; i<20; i++) b[i] = i;
 46:   PetscMemmove(a,b,20*sizeof(int));
 47:   PetscIntView(20,a,0);
 48:   PetscFree(a);

 50:   PetscFinalize();
 51:   return 0;
 52: }
 53: