Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main()
- {
- int *arr;
- int *tmpArr;
- int *pCur;
- unsigned int i;
- arr = malloc(10*sizeof arr[0]);
- printf("arr adress:%p\narr ",(void*)arr);
- if(!arr)
- {
- printf("memory allocation error.\n");
- return 1;
- }
- for(i=0; i<10; ++i)
- {
- arr[i] = i;
- printf("%d ",arr[i]);
- }
- printf("\npCur ");
- pCur = arr;
- printf("%d ", *pCur);
- pCur++;
- printf("%d \n", *pCur);
- //increase
- tmpArr = realloc(arr,12*sizeof arr[0]);
- if(!tmpArr)
- {
- printf("memory reallocation error (1).\n");
- free(arr);
- return 1;
- }
- arr = tmpArr;
- printf("arr adress:%p\narr ",(void*)arr);
- arr[10]=10;
- arr[11]=11;
- for(i=0; i<12; ++i) printf("%d ",arr[i]);
- printf("\npCur ");
- pCur = arr;
- printf("%d ", *pCur);
- pCur++;
- printf("%d \n", *pCur);
- //shrink
- tmpArr = realloc(arr,8*sizeof arr[0]);
- if(!tmpArr)
- {
- printf("memory reallocation error (2).\n");
- free(arr);
- return 1;
- }
- arr = tmpArr;
- printf("arr adress:%p\narr ",(void*)arr);
- for(i=0; i<8; ++i) printf("%d ",arr[i]);
- printf("\npCur ");
- pCur = arr;
- printf("%d ", *pCur);
- pCur++;
- printf("%d \n", *pCur);
- free(arr);
- return 0;
- }
- /*
- output:
- arr adress:0x556d786f4260
- arr 0 1 2 3 4 5 6 7 8 9
- pCur 0 1
- arr adress:0x556d786f46a0
- arr 0 1 2 3 4 5 6 7 8 9 10 11
- pCur 0 1
- arr adress:0x556d786f46a0
- arr 0 1 2 3 4 5 6 7
- pCur 0 1
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement