#define ReAlloc(pointer,count,old_count,type)\ type *temp = new type[count]; \ memcpy(temp, pointer, (unsigned int)(old_count) > (unsigned int)(count) ? (count)*sizeof(type) : (memset((temp)+(old_count), 0, ((count)-(old_count))*sizeof(type)) , (old_count)*sizeof(type))); \ delete []pointer; \ pointer = temp;