Dynamic Array Processing Method

  1. Introduction 
  In the actual development, we could deal with a real-time array (Array), the paper, I use memory copy to achieve dynamic arrays-related operations. 

  2. Related Acer 

  # If defined (_MSC_VER) 
  # Define VLCCVP (void **) 
  # Else 
  # Define VLCCVP 
  # Endif 

  # Define INSERT_ELEM (p_ar, i_oldsize, i_pos, elem) \ 
  Do \ 
  (\ 
  If (! I_oldsize) (p_ar) = NULL; \ 
  (P_ar) = VLCCVP realloc (p_ar, ((i_oldsize) +1) * sizeof (* (p_ar))); \ 
  If ((i_oldsize) - (i_pos)) \ 
  (\ 
  Memmove ((p_ar) + (i_pos) +1 (p_ar) + (i_pos), \ 
  ((I_oldsize) - (i_pos)) * sizeof (* (p_ar))); \ 
  ) \ 
  (P_ar) [i_pos] = elem; \ 
  (I_oldsize) + +; \ 
  ) While (0) 

  # Define REMOVE_ELEM (p_ar, i_oldsize, i_pos) \ 
  Do (\ 
  If ((i_oldsize) - (i_pos) -1) \ 
  (\ 
  Memmove ((p_ar) + (i_pos), (p_ar) + (i_pos) +1 \ 
  ((I_oldsize) - (i_pos) -1) * sizeof (* (p_ar))); \ 
  ) \ 
  If (i_oldsize> 1) \ 
  (\ 
  (P_ar) = realloc (p_ar, ((i_oldsize) -1) * sizeof (* (p_ar))); \ 
  ) \ 
  Else \ 
  (\ 
  Free (p_ar); \ 
  (P_ar) = NULL; \ 
  ) \ 
  (I_oldsize) -; \ 
  ) While (0) 




Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Facebook
  • DotNetKicks
  • DZone
  • Netvouz
  • Propeller

Tags: , ,

Releated Java Articles

Comments

Leave a Reply