개발 12

[C] lstmap 구현하기. 주의사항 포함

temp_before = new_last_lst; 위 행을 while 조건문과 첫 번째 if 문 사이로 옮기면, 제대로 동작하지 않는다. temp_before 변수는 이전 노드의 next에 현재 노드의 주소를 저장하기 위한 임시변수이다. 그런데, 이전 노드에 저장하기 전에 갱신한다면 현재 노드의 next에 현재 노드의 주소를 저장하게 될 뿐이다. #include #include "libft.h" t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)){t_list *new_lst;t_list *new_last_lst;t_list *temp_before;int lst_cnt; lst_cnt = 0;while (lst != (void *..

개발/C 2024.03.06

[C][TIL] strlcat, memcmp 함수 구현

strlcat 구현 시 주의사항 size가 0일 경우, '/0'도 복사하면 안된다. 다음 사진에서 size == 0이 생략되면 틀린 코드가 된다. #include "libft.h" size_tft_strlcpy(char *dst, const char *src, size_t size) { size_ti; i = 0; if (dst == 0 || size == 0) return (ft_strlen(src)); while (src[i] && i + 1 < size) { dst[i] = src[i]; ++i; } dst[i] = '\0'; return (ft_strlen(src)); } memcmp에서 다음과 같이 짜면 안 된다. n이 10인 경우, 인덱스 9까지 while문 을 실행하고 인덱스 10이 되어 탈..

개발/C 2024.03.03

[C] 곱한 값이 오버플로우인지 확인하기

calloc 함수는 "첫 번째 인자 nmemb"와 "두 번째 인자 size"를 곱한 값에 int 범위를 초과하는 오버플로우가 발생하면 에러를 반환한다고 되어 있다. 그렇다면 두 수를 곱했을 때 오버플로우가 발생했는지 어떻게 알 수 있을까? a * b = c (1) 두 정수 a와 b를 곱해서 c가 나왔다고 치자. c / a = b (2) c를 a로 나누면 b다. c / a =/= b (3) (2)가 아니라면 오버플로우다. 알려주신 동료 w에게 제리 인사짤을 바치며. 참고자료 1. 동료 w의 도움 2. 리눅스 calloc man 페이지

개발/C 2024.03.01

[git] 마지막 커밋 메시지 수정

1. -m 뒤에 메시지 바로 적기 git commit --amend -m "메시지" git push -f ex) git commit --amend -m "fix ft_memmove : delete temp array" 2. 편집기로 편집하기 git commit --amend 명령어를 입력하면 다음과 같은 화면이 뜬다. 맨 윗 줄, 즉 커밋 메시지를 수정한 후, 다음과 같이 입력하면 된다고 한다. (아직 안해봄) Ctrl + X + Y + Enter 참고자료 1. https://xtring-dev.tistory.com/entry/Git-%EC%9D%B4%EB%AF%B8-commit%ED%95%9C-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%88%98%EC%A0%95%ED%95%98%EA%B8..

개발 2024.02.28

[Unity] The repository 'https://hub.unity3d.com/linux/repos/deb stable InRelease' is not signed.

에러를 해결하고 유니티를 설치해보자. 한달 정도 미뤄둔 유니티 설치를 마저 해보려고 했다. 오류:7 https://hub-dist.unity3d.com/artifactory/hub-debian-prod-local stable InRelease 다음 서명들은 공개키가 없기 때문에 인증할 수 없습니다: NO_PUBKEY BE3E6EA534E8243F 패키지 목록을 읽는 중입니다... 완료 N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://brave-browser-apt-release.s3.brave.com stable InRelease' doesn't support architecture 'i386..

개발 2024.02.24

피방 코테 후기

피방에서 엘소드 낚시 켜두고 코테 풀었는데 의외로 나쁘지 않았어. 아니, 오히려 괜찮았던 것 같아. 자리가 편하고 백색소음(욕설과 키보드 소리)이 좋았어요! 자정 되기 전에 2문제, 지나고 4문제 풀었나 봐. 피자 자르는 문제들 풀긴 풀었는데 풀이가 깔끔하지 못한 것 같아서 다른 사람들 풀이를 보고 싶었다? 근데 밤새서 머리가 굳었는지 봐도 이해가 안 되더라. 조금 자고 일어나서 다시 볼까 싶어. 나중에 나랑 피방 가서 같이 코딩할래? 이런 발언.. 해도 되나. 나를 감당하렴, 좋다매.

개발 2023.11.09

Furnace 퍼니스 장비

furnace는 가마솥이라는 뜻 퍼니스 장비에서 가장 중요한 3가지 요소는 가스, 온도, 압력이다. 퍼니스 장비는 쉽게 말해서 웨이퍼 표면에 얇은 막을 씌우는 장비이다. 웨이퍼 표면에 박막을 증착시킨다. 이때 막의 종류는 크게 두 가지가 있는데, 하나는 금속막이고 다른 하나는 산화막이다. 금속막의 경우 챔버에 가스를 채우고, 해당 가스 분자에서 필요한 것만 분리하여 막을 씌운다. 분자를 원자 단위로 쪼개려면 힘이 필요하다. 보통 분리를 위해 열을 이용하기 때문에 1200도 공정, 800도 공정 등의 단어를 듣을 수 있다. 이를 *열분해라고 한다. 열분해는 물질을 높은 온도로 가열하여 일어나는 화학물질의 분해 반응을 가리킨다. 일반적으로 430°C 이상의 온도에서 운영된다. 하지만, 온도만 올린다고 모든 ..

개발 2023.10.26
반응형