반응형

공부/윤성우의 열혈 C 프로그래밍 4

윤성우의 열혈 C 프로그래밍 Chapter25 메모리 관리와 동적 할당

메모리 구조 메모리의 구성 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나눠진다. 영역별로 저장되는 데이터 유형 코드 영역 : 실행할 프로그램의 코드가 저장되는 메모리 공간 데이터 영역 : 전역번수와 Static 변수가 할당되는 곳. 프로그램 종료시 까지 남아있게 된다는 특징이 있다. 스택 영역 : 지역변수와 전역변수가 할당되는 곳. 함수를 빠져나가면 소멸된다는 특징이 있다. 힙 영역 : 프로그래머가 원하는 시점에 변수를 할당하고 소멸하도록 지원하는 영역 메모리의 동적 할당 힙 영역의 메모리 공간 할당과 해제 | malloc, free // 힙 영역으로 메모리 공간 할당 void * malloc (size_t size); // 힙 영역으로 메모리 공간 해제 void free(void * ptr) ..

윤성우의 열혈 C 프로그래밍 Chapter26 매크로와 선행처리기

선행처리기와 매크로 선행처리는 컴파일 이전의 처리를 의미 선행처리가 하는 일은 지극히 단순하다. 우리가 삽입해 놓은 선행처리 명령문대로 소스코드의 일부를 수정할 뿐인데 여기서 말하는 수정이란 단순 치환의 형태를 띠는 경우가 대부분이다. 예) #define PI 3.14 이처럼 선행처리 명령문은 # 문자로 시작하며, 컴파일러가 아닌 선행처리기에 의해 처리되는 문장이기 때문에 명령문의 끝에 세미콜론을 붙이지 않는다. 그리고 이렇게 이렇게 구성된 명령문은 성행처리기에 다음과 같은 메시지를 전달한다. PI를 만나면 3.14로 치환하여라. 참고로 여기서 말하는 선행처리란, 컴파일 이전의 처리를 의미한다. 따라서 소스파일은 컴파일러에 의허 컴파일 되기 이전에 선행처리기에 의해 선행처리의 과정을 거치게 된다고 이야기..

윤성우의 열혈 C 프로그래밍 Chapter20 도전! 프로그래밍 3 정답

- 도전 1 길이가 4 x 4인 int형 2차원 배열을 선언하고, 배열의 모든 요소를 오른쪽 방향으로 90도씩 이동시켜서 그 결과를 출력하는 프로그램을 작성해 보자. 더보기 #define _CRT_SECURE_NO_WARNINGS #include void RotateArray(int(*x1)[4]); void ShowArray(int(*x1)[4]); int main(void) { //Problem 1 int Array[4][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12}, { 13, 14, 15, 16} }; for (int i = 0; i

윤성우의 열혈 C 프로그래밍 Chapter15 도전! 프로그래밍 2 정답

- 도전 1 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main 함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 완성하자. 더보기 #define _CRT_SECURE_NO_WARNINGS #include int Hol(int X) { if (X % 2 == 1) { printf("%d", X); } return 0; } int JJak(int Y) { if (Y % 2 == 0) { printf("%d", Y); } retur..

반응형