自分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);
}
-112 であるはずの出力が 6299669 と間違っています。
エラーは、p = b と c = b のキャストにあると思います。あれは正しいですか?