Home
Justnote
Cancel

ft_printf ② 배경 지식

printf 함수 printf manual int printf(const char * restrict format, ...); 반환값 출력한 문자수 (끝의 널문자 제외) 음수값 (output or encoding error 발생 시) 서식 문자열 printf의 f는 formatted의 약자로, 서식화된 출력을 지원한다는 의미이다. ...

ft_printf ① Subject

Summary 이 프로젝트의 목표는 매우 간단합니다. printf()를 다시 코드화합니다. 당신은 가변 인자를 사용하는 것에 대해 배울 것입니다. Mandatory part libc의 printf() 함수를 다시 코딩해야 합니다. ft_printf()의 프로토타입 : int ft_printf(const char *, ...); 요구 사항은...

Get Next Line ⑤ 기타

과제 유의사항 메모리 관리 GNL 과제를 진행하며 메모리 관리의 중요성을 계속해서 느꼈다. 이전까지는 메모리공간의 사용이 복잡하지 않아 기계적으로 malloc 뒤에 free를 해주었지만 이번 과제에서는 함수를 호출하며 해당 포인터를 인수로 넘겨주거나 반환값으로 넘겨주는 경우가 있어 꼼꼼하게 관리할 필요가 있었다. backup = ft_strjoin(...

Printf Manual

C Programming Standard 7.19.6.3 The printf function Synopsis #include <stdio.h> int printf(const char * restrict format, ...); Description The printf function is equivalent to fprintf with ...

Get Next Line ④ 구현 과정

Mandatory part 과제 설명 char *get_next_line(int fd); 매개변수 fd: 읽어야 할 파일의 디스크립터 반환값 읽은 line: 한 줄을 제대로 읽는다. NULL : 더이상 읽을게 없거나 에러 발생 사용가능 외부함수 ...

Dangling pointer(댕글링 포인터)

Description 해제된 메모리 영역을 가리키고 있는 포인터 char *ptr1 = (char *)malloc(sizeof(char)); ... free(ptr1); 위의 ptr1이 가리키는 메모리 영역은 free함수로 해제됐지만 ptr1은 여전히 해당 영역을 가리킨다.(변수가 삭제되지 않았기 때문) Problem 예측 불가능한 동작 ...

메모리 구조

메모리 공간의 구분 코드(code) 영역 데이터(data) 영역 스택(stack) 영역 힙(heap) 영역 *Heap과 Stack의 데이터 저장 방향은 운영체제 따라 다르다고 함. 메모리 해제 Data 영역: 프로세스가 종료되면 소멸함 Stack 영역: 함수 종료 시 제거됨 Heap 영역: 개발자가 직접 free !! ...

Memory leak(메모리 누수)

free(buf) 와 buf = 0 의 차이? free(buf) : 할당받은 메모리를 해제 buf = 0 : 할당받은 메모리 주소를 담고있는 buf 변수가 0 값을 갖게 됨 → memory leak!

컴파일의 4단계

전처리 주석제거 헤더 파일 삽입 매크로 치환 및 적용 컴파일 언어의 문법 검사 static 영역(Data, BSS 영역)의 메모리 할당 어셈블리 어셈블러를 통해 어셈블리어 파일을 오브젝트 파일로 변환 링킹 링커를 통해 오브젝트 파일과 라이브러리를 묶어서 실행파일 생성 Ref. https://bradbury.tistory.com...

0, ‘\0’, NULL 차이점

의미 char null_1 = '\0'; char null_2 = 0; char null_3 = (char)NULL; 3개 모두 결과는 동일하지만 해석방식의 차이가 있음. null_1 : \0의 아스키 값인 0이 저장됨 null_2 : 0이 바로 저장됨 null_3 : NULL은 헤더파일에 (void *)0으로 저장되어 있음.→ 0이 저장됨...