my memcpy

void *my_memcpy(void *dest, const void *source, size_t count) {
  char *dest_ptr = static_cast<char *>(dest);
  const char *src_ptr = static_cast<const char *>(source);
 
  if (src_ptr < dest_ptr && src_ptr + count > dest_ptr ) {
    for (size_t i = count - 1; i != -1; --i) {
      dest_ptr[i] = src_ptr[i];
    }
  } else {
    for (size_t i = 0; i < count; ++i) {
      dest_ptr[i] = src_ptr[i];
    }
  }
  return dest;
}
datstructalgo/mymemcpy.txt · 最后更改: 2012/01/11 00:50 由 admin
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki