Actual source code: ex10.c
2: static char help[] = "Tests PetscArraymove()/PetscMemmove()\n";
4: #include <petscsys.h>
6: int main(int argc,char **argv)
7: {
8: PetscInt i,*a,*b;
10: PetscInitialize(&argc,&argv,(char*)0,help);
12: PetscMalloc1(10,&a);
13: PetscMalloc1(20,&b);
15: /*
16: Nonoverlapping regions
17: */
18: for (i=0; i<20; i++) b[i] = i;
19: PetscArraymove(a,b,10);
20: PetscIntView(10,a,NULL);
22: PetscFree(a);
24: /*
25: | | | |
26: b a b+15 b+20
27: a+10 a+15
28: */
29: a = b + 5;
30: PetscArraymove(a,b,15);
31: PetscIntView(15,a,NULL);
32: PetscFree(b);
34: /*
35: | | | |
36: a b a+20 a+25
37: b+20
38: */
39: PetscMalloc1(25,&a);
40: b = a + 5;
41: for (i=0; i<20; i++) b[i] = i;
42: PetscArraymove(a,b,20);
43: PetscIntView(20,a,NULL);
44: PetscFree(a);
46: PetscFinalize();
47: return 0;
48: }
50: /*TEST
52: test:
54: TEST*/