Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. void* splice(int typesize,void* arr,
  2. int size,int start, int length,
  3. void* stuff,int size2){
  4. int gap = length-size2;
  5. void* ptr = malloc(typesize*(size-gap));//--------(1)--------
  6. if(ptr==NULL){
  7. puts("error");
  8. return NULL;
  9. }
  10. memmove(ptr,arr,typesize*size);
  11. memmove(ptr+typesize*start,stuff,typesize*size2);
  12. memmove(ptr+typesize*(start+size2),arr+typesize*(start+length),
  13. typesize*(size-start-length));
  14. return ptr;
  15. }
  16.  
  17. int main(){
  18. setbuf(stdout,NULL);
  19. int start = 1;
  20. int delete = 6;
  21. long long* oldArray= malloc(sizeof(long long)*7);
  22. long long* stuff = malloc(sizeof(long long)*3);
  23. oldArray[0]=7LL;
  24. oldArray[1]=8LL;
  25. oldArray[2]=4LL;
  26. oldArray[3]=1LL;
  27. oldArray[4]=55LL;
  28. oldArray[5]=67LL;
  29. oldArray[6]=71LL;
  30. stuff[0]=111LL;
  31. stuff[1]=233LL;
  32. stuff[2]=377LL;
  33. int newsize = 7-(delete-3);
  34. void* newArray = splice(sizeof(long long),oldArray,7,start,delete,stuff,3);
  35. if(newArray){
  36.  
  37. //------------crash happens here-----------
  38. //free(oldArray);
  39. //-------------
  40.  
  41. oldArray = newArray;
  42. int i=0;
  43. for(;i<newsize;i++){
  44. printf("%I64dn",oldArray[i]);
  45. }
  46. }
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement