Actual source code: ex10.c
1: /*
2: Tests PetscMemmove()
3: */
5: #include petscsys.h
9: int main(int argc,char **argv)
10: {
11: int i,*a,*b,ierr;
12: PetscInitialize(&argc,&argv,(char *)0,0);
14: PetscMalloc(10*sizeof(int),&a);
15: PetscMalloc(20*sizeof(int),&b);
17: /*
18: Nonoverlapping regions
19: */
20: for (i=0; i<20; i++) b[i] = i;
21: PetscMemmove(a,b,10*sizeof(int));
22: PetscIntView(10,a,0);
24: PetscFree(a);
26: /*
27: | | | |
28: b a b+15 b+20
29: a+10 a+15
30: */
31: a = b + 5;
32: PetscMemmove(a,b,15*sizeof(int));
33: PetscIntView(15,a,0);
34: PetscFree(b);
36: /*
37: | | | |
38: a b a+20 a+25
39: b+20
40: */
41: PetscMalloc(25*sizeof(int),&a);
42: b = a + 5;
43: for (i=0; i<20; i++) b[i] = i;
44: PetscMemmove(a,b,20*sizeof(int));
45: PetscIntView(20,a,0);
46: PetscFree(a);
48: PetscFinalize();
49: return 0;
50: }
51: