본문 바로가기
카테고리 없음

memcmp

by yunchanlee 2024. 11. 13.

memcmp는 두 메모리 블록을 비교하여 그 차이를 반환하는 함수입니다. 주로 데이터 일치 여부를 확인하거나 메모리 내 특정 패턴을 찾는 데 사용됩니다.

int memcmp(const void *ptr1, const void *ptr2, size_t num);

ptr1 & ptr2 : 비교하고자 하는 두 메모리 블록의 포인터입니다.

num : 비교할 바이트 수 입니다.

반환값 : 두 메모리 블록이 같으면 0, ptr1이 ptr2보다 크면 양수, 작으면 음수를 반환합니다.

 

사용 예시

#include <stdio.h>
#include <string.h>

int main() {
    char data1[] = "Hello, World!";
    char data2[] = "Hello, C!";

    int result = memcmp(data1, data2, 5);
    if (result == 0) {
        printf("앞의 5바이트는 동일합니다.\n");
    } else {
        printf("앞의 5바이트가 다릅니다.\n");
    }
    return 0;
}

주의할 점

부호 없는 타입 : memcmp는 usigned char로 데이터를 해석하며 음수 값은 양수로 변환됩니다.

따라서 부호가 있는 데이터와 비교할 때 예상과 다른 결과가 나올 수 있습니다.

바이트 단위로 처리: memcmp는 바이트 단위로 처리하기 때문에 바이트 보다 큰 수를 비교한다면 예상치 못한 결과를 얻을 수 있습니다.

 

댓글