memcpy()求解,该如何解决
memcpy()求解我看memcpy()源码是没有对内存重叠进行处理的,但是我写了一段测试code,结果不是逾期的啊,求指
memcpy()求解
我看memcpy()源码是没有对内存重叠进行处理的,但是我写了一段测试code,结果不是逾期的啊,求指教.
char t[10] = {'A','B','C','D','E'};
char *d;
d = (char *)memcpy(&t[1],&t[0],2);
printf(“the t is %s\n”,t);
打印的结果是:AABDE
如果没有处理内存重叠,
不是应该是
t[0] = 'A';
t[1] = 'A';
t[2] = 'A';
吗?
结果应该是AAADE吗?
求解
[解决办法]
有码有真相啊。
memcpy就是会判断是从高地址复制到底地址还是从底地址到高地址,反正不会先覆盖再复制的。