파도가 칠 때는 서핑을

Soon as possible

Wait!

공부/TIL

20210310(수)

hyeonhki 2021. 3. 10. 21:34
728x90

- 📆 학습 날짜

2021.03.10 (토)

- 🕐 학습 시간

    8:30 - 11:00
    19:50 - 21:30

- ✓ 학습 목표

- %pxX 구현하기

- 어제 남은 일

 - 재귀함수로 putnbr 받아서 문자열로 반환하기..

- ? 학습 범위 및 주제

  • 42seoul : ft_printf
  • C 프로그래밍

- 📝 상세 학습 내용

  • ft_putnbr_base

    • 재귀함수에서 이차원배열로 문자열 값을 입력하는 중
    • 재귀 카운트를 0시작이 아닌 길이시작에서 --로 변경하여 거꾸로 출력되는 결과를 뒤집었다.
    • index 0 으로 시작시 012 가 123이 되는 문제가 있어서 출력이 이상했던 것이었다!
    • 가변인자에 널이 들어온 경우 => 해결
      • unsinged long으로 형변환해서 받는데 왜 문제가 생길까
      • segmentation의 이유는 가변인자가 0일때, 저장되는 문자열이 "0"이어야 하는데. 내 함수에서는 *ret[1] = 0 으로 널을 집어주니 오류가 나왔다. char 와 char *의 차이랑 같은 이유.
    • 쓰레기값으로 인한 문제 => ft_bufwhat에서 마지막 문자 널처리를 안해서 생기는 문제! =>해결
  • %xX 구현

    • %p 와 거의 동일한 방법으로 구현
    • 16진수 변환 (소문자, 대문자)
      • 동일한 문제 : return값과 문자열이 거의 2배로 출력
        => unsinged long 이 아닌 unsigned int로 받아주면 문제 사라짐!

- ? 추가적으로 공부해야할 내용 (Weekend)

  • ft_bewhat, be_zero에서 void 포인터를 사용한 함수구현
    • 왜 이차원 포인터를 사용하지 않았는데 내용이 바뀌었나?
    • 인덱스를 사용하지 않고 함수를 구현할 시 문제가 생긴 내용
  • char * 와 char []의 차이

    https://skyul.tistory.com/28

  • unsigned long, unsigned int 자료형 byte와 이로인해 생기는 문제

- 학습내용에 대한 총평

printf 구현의 끝이 보인다.
요며칠 또 집들이하느라 공부 못했는데, 다시 각잡고 해보자..


- 👉 해야할 일

  • %p 마지막 테스트 오류 2개 수정
  • 모든 테스터기 돌려보기(printf_lover에서의 문제는 함수 어딘가에 널처리가 되지않아 쓰레기값이 읽혀나온 문제라고 한다.!! ft_itoa등 잘 살펴볼 것!)
  • 코드 줄이기 및 함수구현 정리

- 📚 참고 서적 및 웹사이트

-슬랙 : %x unsigned int , unsgined long

728x90

'공부 > TIL' 카테고리의 다른 글

20210312(금)  (0) 2021.03.13
20210311(목)  (0) 2021.03.12
20210308(월)  (0) 2021.03.08
20210307(일)  (0) 2021.03.08
20210306(토)  (0) 2021.03.07