본문 바로가기

42seoul46

[ CPP02 ] 0. 과제이해하기 # Orthodox Canonical Class Form (OCCF) - 02부터 나오는 새로운 규칙, class를 만들 때 4가지 멤버 함수를 필수적으로 포함해야한다. Default constructor Copy constructor Copy assignment operator Destructor # 복사 생성자 복사에는 얕은 복사와 깊은 복사가 있는데 가장 이해하기 쉬운 예로 메모리를 할당받은 (원본)변수(-> 포인터)를 복사한다고 할 때 얕은 복사는 원본 변수가 가리키고 있는 주소값을 복사해와 같은 메모리를 가리킨다면 깊은 복사는 원본 변수가 할당받은 메모리 크기 만큼 새로 할당 받고 값까지 복사하는 것을 말한다. 얕은 복사는 원본 변수와 복사변수가 같은 값을 출력하며 같은 메모리를 가리키지만 깊은.. 2022. 7. 30.
[ CPP01 ] 0. 과제 이해하기 This module is designed to help you understand the memory allocation, reference, pointers to members and the usage of the switch in CPP. 메모리할당, 참조, 멤버포인터, switch 에 대해 알아보자..! ex00 - 먼저 Zombie 클래스를 생성하고 private string name을 가진다. - announce 함수를 좀비 클래스에 만들고 좀비들이 자신의 이름을 스스로 말하도록 하기 다음의 두 함수를 만들어라 - newZombie : 좀비를 생성하고 이름을 붙이고 반환하여 함수밖에서 사용할 수 있도록 해라 - randomChump : 좀비를 만들고 이름을 붙이고 announce 함수를 실행하.. 2022. 7. 28.
[ NetPractice ] NetAnswer 보호되어 있는 글 입니다. 2022. 7. 12.
[ minishell ] 1. 사전지식 # shell 명령어 해석기 command interpreter 사용자가 입력한 명령어를 해석하여 커널에 전달 터널과 사용자간의 대화식 인터페이스를 제공 로그인 할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 한다. 강력한 스크립트 언어 리다이렉션과 파이프 기능을 제공하고 포그라운드/백그라운드 프로세스를 실행 # bash shell /bin/bash 명령어 완성 기능, 히스토리, 명령어 치환, 편집 등의 지원 # 환경 변수 전체 shell에서 사용 가능한 전역 변수 서브 shell에 기능 상속 가능 env로 환경 변수를 확인할 수 있다. # 셸 변수 현재 로그인 shell에서만 사용 가능한 지역 변수 서브 shell에 기능 상속 불가능 set으로 shell 변수를 확인할 수 있다. # 프롬프트 ht.. 2022. 5. 15.
[minishell] 0. 과제 이해하기 [minishell] : As beautiful as a shell # Description 간단한 shell을 만들어봅시다. # Keywords Unix logic # common instructions 더보기 프로젝트는 C로 작성된다. norm을 따라야한다. 보너스 역시 norm을 따라야 한다. 예기치 않게 프로그램이 중단되어서는 안됩니다. (segmentation fault, bus error, double free 등등등등ㄷ) 메모리 누수 당연히 안됨 할당한 메모리는 모두 해제하세영 -Wall -Wextra -Werror 플래그를 통해 컴파일 수행하기, 리링크는 당연히 안됩니다. Makefile은 $(NAME), all, clean, fclean, re 규칙을 포함해야해요. 보너스를 만들고자 할 .. 2022. 5. 13.
[Philosophers] 1. 과제 해결하기 # 철학자들은 스레드로 구현되어 있다. * 쓰레드 : 어떤 프로그램 내에서 실행되는 흐름의 단위 운영체제의 일부인 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍 된 명령어의 가장 작은 시퀀스 하나의 프로그램은 하나 이상의 프로세스를 가지고 하나의 프로세스는 하나 이상의 스레드를 가진다. * 프로세스 : 컴퓨터 프로그램의 인스턴스로 하나 이상의 스레드를 통해 실현된다. - 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태 * 스레드 vs 프로세스 프로세스는 실행될 때 운영체제로부터 각각 독립된 메모리 영역을 할당받는다. 스레드는 한 프로세스 내에서 동작되는 흐름으로 프로세스네에서 stack영역만 별도로 할당 받는다. 부모프로세스의 코드, 데이터, 힙 영역은 공유한다. 즉, 프로.. 2022. 5. 8.
[so_long] 04. so_long 회고 # 어려웠던 점 1. 크기가 다 똑같은 이미지를 구하기가 어려웠다. 과제에서 알려주는 사이트로 들어가면 16, 6, 32 제각각이다. 그래서 원하는 이미지만 골라서 넣고자 할 때도 전부 같은 크기로 맞추기 어려웠다. 제발 고생하지 말고 이거 써서 크기 맞추세여!!!!!!! https://www.resizepixel.com/ko 2. 구조체안에 구조체를 두었다. 좀 갈끔하게, 변수를 덕지덕지 넣지 않고 분류되듯이 하려고 구조체안에 캐릭터에 대한 정보를 담는 구조체, 맵에 대한 정보를 담는 구조체, 이미지에 대한 정보를 담는 구조체를 넣었는데 typedef struct s_map { introw; intcol; }t_map; typedef struct s_img { void*mermaid; void*shoe.. 2022. 4. 27.
[Philosophers] 0. 과제 이해하기 목표는 4월 안에 끝내기..! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ아오 진짜 so_long을 빨리 했어야지 이 사람아......에휴 [Philosophers] : I never thought philosophy would be so deadly # Description In this project, you will learn the basics of threading a process. You will see how to create threads and you will discover mutexes. 이번 프로젝트에서 프로세스 스레딩의 기본을 배울 수 있다. 어떻게 스레드를 만드는지, 뮤텍스가 무엇인지도 알 수 있다. # Keywords - Unix logic #Skills - Imperative programming .. 2022. 4. 27.
[so_long] 03. 창 만들어서 키보드 입력받기 https://github.com/terry-yes/mlx_example 의 자료를 해석했습니다. 1. mlx_init() 소프트웨어와 화면을 연결 mlx 라이브러리 초기화 2. mlx_new_window(mlx, width, height, "SO_LONG"); SO_LONG 이라는 이름을 가지고 너비가 width, 높이가 height인 창 띄우기 3. 키보드와 연결하기 (MAC ver) #define X_EVENT_KEY_PRESS2 #define X_EVENT_KEY_release3 #define X_EVENT_KEY_EXIT17 //exit key code //Mac key code example //All the key code example other than below is described .. 2022. 4. 20.