请教 memcpy 到底拷贝了什么?
函数原形为:
void *memcpy(void *dest, const void *src, int c, size_t n);
看到网上的解释多为:
memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的地址上。
为了理解这个函数。我写了如下几行代码,可还是理解不到位:
char* a = "abcdefghigklmnopqrstuvwxyz_abcdefghigklmnopqrstuvwxyz_";
char* b = NULL;
int size = sizeof(b);
memcpy(&b, &a, size);
a = "10";
//size的值为4,通过memcpy的拷贝后,a的所有的值都被赋给了b。而不是只有4个字节!!
//是不是可以理解为memcpy把a的地址给了b呢?但这样明显又是不对了,因为下面给a
//重新赋值后,b的值又是不变的。这又如何理解呢?memcpy到底是怎样拷贝的呢?
//有什么特殊的机制吗? 请高手指点。。。