#include
#include
using namespace std;
void* memmove(void *dst, const void *src, size_t count){
// 容错处理
if (dst == NULL || src == NULL){
return NULL;
}
unsigned char *pdst = (unsigned char *)d...
分类:
其他好文 时间:
2015-06-25 12:30:18
阅读次数:
90
已知strcpy函数的原型是:
char *strcpy(char *dst, const char *src);
实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现
1.strcpy的实现代码
char * strcpy(char *dst,const char *src) //[1]
{
...
分类:
其他好文 时间:
2015-06-17 15:20:03
阅读次数:
120
又刷了一套题
这些题都是百度、阿里巴巴、腾讯、网易、新浪等公司的面试原题,有一定的难度,不过确实相当有水平,可以通过做题来查漏补缺。
1.补充下面函数代码:
如果两段内存重叠,用memcpy函数可能会导致行为未定义。 而memmove函数能够避免这种问题,下面是一种实现方式,请补充代码。
#include
using namespace std;
void* memmo...
分类:
编程语言 时间:
2015-06-04 13:55:52
阅读次数:
225
如果两段内存重叠,用memcpy函数可能会导致行为未定义,改进:
void* memmove(void* str1,const void* str2,size_t n)
{
char* pStr1= (char*) str1;
const char* pStr2=(const char*)str2;
if (pStr1 < pStr2 )
{
for(size_t i=0;i!=...
分类:
其他好文 时间:
2015-05-27 15:50:20
阅读次数:
119
又刷了一套题
以下题目出自 牛客网
这些题都是百度、阿里巴巴、腾讯、网易、新浪等公司的面试原题,有一定的难度,不过确实相当有水平,可以通过做题来查漏补缺。
1.补充下面函数代码:
如果两段内存重叠,用memcpy函数可能会导致行为未定义。 而memmove函数能够避免这种问题,下面是一种实现方式,请补充代码。
#include
using namespac...
分类:
编程语言 时间:
2015-05-24 14:20:54
阅读次数:
642
已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现1.strcpy的实现代码char * strcpy(char *dst,con...
分类:
其他好文 时间:
2015-05-14 13:44:04
阅读次数:
88
如果两段内存重叠,用memcpy函数可能会导致行为未定义。 而memmove函数能够避免这种问题,下面是一种实现方式: 1 #include 2 using namespace std; 3 void* memmove(void* str1,const void* str2,size_t n) 4....
分类:
编程语言 时间:
2015-04-20 22:13:16
阅读次数:
212
// 若在同一块内存中拷贝,有可能实现内存重叠,为了处理这种情况,有了增强版的memcpy,与memmov功能相似
//不怕内存重叠的memcpy
#include
#include
void * my_memmov( void * dst, void const * src, int count )
{
void * ret = dst;
assert( ( dst != NULL ...
分类:
编程语言 时间:
2015-03-30 18:46:17
阅读次数:
187
要考虑内存重叠
char * strcpy(char *dst,const char *src)
{
assert(dst != NULL && src != NULL);
char *ret = dst;
my_memcpy(dst, src, strlen(src)+1);
return ret;
}
char *my_memcpy(char *dst,...
分类:
其他好文 时间:
2015-03-09 14:31:09
阅读次数:
109
要考虑内存重叠
char * strcpy(char *dst,const char *src)
{
assert(dst != NULL && src != NULL);
char *ret = dst;
my_memcpy(dst, src, strlen(src)+1);
return ret;
}
char *my_memcpy(char *dst,...
分类:
其他好文 时间:
2015-03-08 17:14:51
阅读次数:
145