我正在创建自己的memcmp
,我有一个问题。
这是我的代码:
int my_memcmp(void *b, void *c, int len)
{
unsigned char *p;
p = b;
c = b;
while(len > 0)
{
if(b - c != 0)
return (b - c);
len--;
b++;
c++;
}
}
int main()
{
char *str;
char *str2;
int i;
str = strdup("hello");
str2 = strdup("hellop");
i = my_memcmp(str, str2, 6);
printf("%d\n", i);
}
输出错误 6299669 应该是 -112。
我认为错误在于我对 p = b 和 c = b 的转换。那是对的吗?