c언어 memset, bzero함수 구현!

세상을 바꿀 소프트웨어 공부/C언어

c언어 memset, bzero함수 구현!

_별강 2020. 12. 26. 23:05
반응형

memset

  • 메모리 안의 값을 원하는 만큼 원하는 값으로 변환 해주는 함수!

    프로토타입파라미터

    메모리의 주소를 가져와 줌, 어떤 형태의 값이 들어올지 모르기 때문에 void 형인 듯

    int c;size_t n;
  • n에 얼마나 바꿀지 적어주면 되는데 메모리 하나당 총 8바이트니까 8바이트 자료형인 size_t를 사용!
    ## 변수 ### unsigned char* temp; void *s의 자료형을 영구적으로 바꿔주기 위해서 만든 변수이다. ### unsigned long long tur; index이다. tur은 천천히 가도 이기는 동물인 turtle에서 착안했다. 본래의 자료형이 8바이트 짜리인 size _t 형이라 같은 8바이트로 만들었다. ## 구현 코드 ```C #include
  • 바꾸고 싶은 값 넣어주고 받아옴
  • void *s;
  • void *memset(void *s, int c, size_t n)

void my_memset(void *s, int c, size_t n)
{
unsigned char
temp;
unsigned long long tur; //index

temp = s;
tur = 0;
while(tur < n)
{
    *temp = (unsigned char)c;
    temp++;
    tur++;
}
return (s);

bzero

  • 메모리 안의 값을 원하는 만큼 0으로 채우는 함수!프로토타입
  • void bzero(void *s, size_t n)

파라미터

void* s;

memset처럼 메모리의 주소를 받아옴

size_t n;

얼마나 바꿀지 바이트 단위로 너어줌!

변수

unsigned char *temp;

void *형의 주소값을 형 변환해줄 임시 저장소

구현 코드

#include <string.h>

void *my_memset(void *s, int c, size_t n)
{
    unsigned char* temp;

    temp = s;
    while(n--)
    {
        temp = 0;
        temp++;
    }
}
틀린 부분 있을 수 있습니다. 댓글로 남겨주세요!
반응형