목록C언어 (11)
Love Every Moment

1. malloc int main(void) { int *x; int *y; x = malloc(sizeof(int)); *x = 42; *y = 13; } 위의 코드는 y 가 어디를 가리키는지 정의하지 않았다는 점에서 오류가 있다. 초기화되지 않은 *y 에 13 이라는 값을 저장하려고 하면 오류가 발생한다.따라서 y 가 가리키는 곳이 어디인지 정의하는 과정이 필요하다. #include #include int main(void) { int *x; int *y; x = malloc(sizeof(int)); y = x; *y = 13; printf("%i\n", *x); printf("%i\n", *y); free(x); } y = x 라는 코드를 더해줌으로써 y 가 가리키는 곳이 x 와 같게 되었다. 따라..

1. 메모리 주소 (1) 16진수(Hexadecimal) 16진법에서 a 부터 f 까지는 각각 10 부터 15까지의 수를 의미하며 0x 는 16진수를 나타내는 형식이다. 예를 들어 위의 사진에서 255 는 16 x f(15) + 1 x f(15) 와 같으므로 0xff 로 나타낼 수 있다. 알파벳 대문자 A 는 아스키 코드로 65 에 해당하므로 0x41 로 나타낼 수 있다. 다음의 표는 0 ~ 19 를 16진수로 표현하는 방식을 보여주는 예시이다. 10진법 0 1 2 3 4 5 6 7 8 9 16진법 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 10진법 10 11 12 13 14 15 16 17 18 19 16진법 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x..

1. 컴파일링(Compiling) (1) 전처리(Precompile) : 실질적인 컴파일 전에 무언가를 실행하라고 시키는 과정 #include 를 소스 코드에 작성하면 stdio.h 파일의 내용을 포함한 새로운 소스 코드 파일이 생성된다 (2) 컴파일(Compile) : 전처리한 소스 코드를 어셈블리 코드로 변환하는 과정 컴파일이라는 용어는 넓은 의미로 소스 코드에서 오브젝트 코드로 변환하는 전체 과정을 의미하기도 하고 좁은 의미로는 전처리된 소스 코드를 어셈블리 코드로 변환하는 것을 의미한다 *** make 명령어를 통해 clang 이라는 컴파일러를 호출해서 소스코드를 오브젝트 코드로 변환할 수도 있다 (3) 어셈블(Assemble) : 어셈블리 코드를 오브젝트 코드로 변환하는 과정 어셈블러라는 프로그..