Memcpy
和 memcmp
函数可以接受指针变量吗?
char *p;
char* q;
memcpy(p,q,10); //will this work?
memcmp(p,q,10); //will this work?
最佳答案
不,您编写的代码将不起作用,因为您将未初始化的指针传递给 memcpy()
(和 memcmp()
),但是 memcpy ()
调用就足够了)。这将导致未定义的行为,因为您不允许从这些“随机”位置读取/写入。
您可以通过确保指针有效来修复它,例如:
char buf[10], *p = buf;
const char *q = "hello hello";
memcpy(p, q, 10);
printf("the copying made the buffers %s\n",
memcmp(p, q, 10) == 0 ? "equal" : "different");
当然,p
可以用上面的普通 buf
替换。
关于c - Memcpy func 获取指针变量?字符*p;字符* q; memcpy(p,q,10);会起作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697861/