[1 Circle] Get next line - 해결하면서...

Suffergo·2021년 2월 6일
0

42seoul - 1 Circle

목록 보기
2/4

- if문은 0일 때 거짓, 나머지 참

- buf[BUFFER_SIZE + 1]?

- 댕글링 포인터?

premature free (조숙한 해제, 너무 급한 해제)
포인터가 여전히 해제된 메모리 영역을 가리키고 있는 것을 뜻한다.
free 이후에 null포인터 지정을 통해 해결!

- 메모리 누수의 문제

  • 동적할당된 buf가 존재할 경우
    • free(buf) 👉 할당받은 메모리를 해제하는 것
    • buf = 0 👉 할당받은 메모리주소를 담고있는 buf 변수가 0값을 갖게되는 것
      할당받은 메모리주소를 잃어버린게 되어 해제가 불가 = MEMORY LEAK!

- ft_strjoin의 사용

  • 문자열에서 사용
char *a;

a = ft_strjoin(a,"test");
printf("a : %s\n", a); //test

char *backup[2];

backup[0] = ft_strjoin(backup[0], "test"); 
printf("backup : %s\n", backup[0]); //test

빈 문자열 할당없이 실행되는데 ft_strjoin에서 하나가 널일 경우 빈문자열을 할당하게 설정해놓았기 때문이다.

- 빈 문자열과 널의 차이

  • (1) String a = null;
    • 객체가 힙에서 아무것도 참조하지 않음
  • (2) String a = "";
    • 객체가 힙에서 길이가 0인 고유한 문자열을 나타내는 것을 나타내는 용어
profile
파도가 칠 때는 서핑을

0개의 댓글