relink 가 되지 않는 이유. 의존성 등. bonus도 리링크 되지 않도록 처리. makefile 의 개념, 각각의 요소들 처리 명령어
문자열을 int 자료형으로 변경 시켜주는 것.
memset 으로 2바이트 이상의 자료형을 초기화 하면 ( 왜 unsigned char 로 형변환해서 넣었는지)
간단히 첨언하자면, 가장 직접적인 이유는 C언어 표준에서 unsigned char만을 명시하고 있기 때문입니다.C언어 표준 명세서의 '자료형의 표현' 절에 따르면 n바이트로 이루어진 모든 타입의 값은 unsigned char [n] 이라는 배열 형태의 메모리에 복사 가능헤야 합니다. 즉, unsigned char 만이 메모리 상의 바이트 복사를 표준 명세 상 보증합니다. Signed char는 명세 차원에서 이를 보증해주지 않습니다.
특정 아키텍처 cpu를 사용하는 환경에서는 unsigned char가 디폴트로서 그러한 환경에서는 char를 사용할시 unsigned char로 바뀌어 적용된다.( char를 사용하였을때 환경마다 다르게 동작할 수 있다.)그리고 이러한 오동작으로 인해 여러가지 에러가 발생할 수 있다.
2. 그렇기에 관례상 unsigned char를 사용하게끔 되어있고, C표준에도 그렇게 되어있어대부분의 str or mem 계열 함수에서는 unsigned char를 사용한다.
오버랩을 고려하는 것이 memmove 함수.
리턴 값의 의미 , strlen(dst)>= dstsize 인 경우를 왜 체크
각각의 함수들에 대해 널가드를 왜 했고 하지 않았는지
에 널이 들어왔을 때 세그먼트 폴트가 뜬다.
에 널이 들어왔을 때
에 빈값 들어왔을 때
calloc(0x8000000000000001, 2)
곱했을 때 overflow나는 경우와
calloc(0, 0) calloc(0, 1) calloc(1, 0)
곱했을 때 0이 되는 경우 두가지 해보세요