본문 바로가기

프로그래밍/C언어11

[C언어] # 10. 동적 메모리 할당 malloc 함수 (Stack & Heap 영역) malloc 함수를 설명하기 전에 변수가 저장되는 메모리 공간의 종류들에 대해 설명을 먼저 해보고자 합니다. 메모리 공간은 여러 가지가 있지만 대표적으로 전역변수가 저장되는 Data영역 , 지역변수가 저장되는 Stack영역. 그리고 메모리의 은행 창고의 역할을 하는 Heap영역이 있습니다. 이 글에서 쓰는 동적 메모리란 사용자가 메모리를 자유자재로 할당받는다는 것을 의미합니다. 즉, Heap영역으로부터 메모리를 필요한만큼 빌려쓰고 반환을 합니다. 이게 참 좋은게 배열을 다룰 때입니다. 예를 들어서, 대학교에서 어떤 강의의 수강생에 대한 재수강 여부를 관리하고자 합니다. 여러분들도 아시다시피 중간에 수강철회하는 사람, 새로 수강신청을 한 사람들이 있습니다. 즉, 상황에 따라 유동적으로 바뀝니다. 대략 이 .. 2022. 2. 25.
[C언어] # 9. 포인터에 대한 담백한 이해 (쉽게 설명) C언어를 공부하면서 가장 어려웠던 3가지 개념을 꼽으라면 동적메모리할당, 포인터, 구조체였던거 같습니다. 오늘 작성할 글은 포인터입니다. 저도 많이 부족하지만 포인터에 대한 간략한 이해를 도와보겠습니다. 포인터는 어떤 변수가 메모리 공간을 할당받고 저장되어있을 때, 그 변수가 살고있는 메모리 주소값을 가리키는 것입니다. 말 그대로 진짜 'Point!'인 셈이죠. 레이저 포인터할 때 그 포인터입니다. 우리가 어떤 변수의 초기값을 선언할 때는 항상 그 값들이 가지는 고유주소를 배정받게 됩니다. 이 주소의 값을 보는 방법은 printf를 통해 형식 지정자 "%p"를 사용하면 됩니다. 5라는 값은 현재 000000000062FE1C 라는 주소에서 살고 있군요. * 주의사항 : 앰퍼샌드 & 기호는 두개를 쓰면 '.. 2022. 2. 24.
[C언어] # 8. 배열 기초 응용 문제 (최대값 & 최소값 구하는 프로그램) : 백준 10818번 C언어 10818번: 최소, 최대 (acmicpc.net) 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 주어진 문제는 이렇습니다. 입력받을 정수의 개수를 먼저 선언한 뒤, 정수들을 입력했을 때 최소, 최대값만 나오게 하는 것입니다. 일단 문제를 딱 읽었을 때, 배열과 조건문. 그리고 기준이 될 최대&최소 변수의 선언이 필요해보입니다. #include int main() { int i,count; int max = -1000000; int min = 1000000; scanf("%.. 2022. 2. 22.
[C언어] # 7. 1차원 배열 & 2차원 배열 (array 함수) / 문자열에 대하여 printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다. Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다. A. 1) Switch문에 대해 배웠습니다. - Switch문은 트리거를 생성하여 어떤 값을 입력하냐에 따라 다른 결과를 출력할 수 있도록 생성한 문법입니다. if문과 비슷한 개념이지만 여러개의 다중조건을 처리하고자할 때는 Switch문이 코드도 좀 더 깔끔한 느낌입니다. 통상적으로는 if문을 많이 쓰긴하나, switch문도 알아둘 필요가 있.. 2022. 1. 27.
[C언어] #6. Switch / case문법 printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다. Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다. A. 1) while문에 대해 배웠습니다. - while문은 for문과 마찬가지로 반복문 유형 중 하나입니다. 다만, for문의 구조는 옆에 초기값 선언, 조건식, 증감식을 한번에 적어줬다면 while문은 위에 초기값 선언, while 옆에 조건식 선언, while 몸통에 증감식 선언. 이런 식으로 나눠서 구조를 짜야했었습니다. 2) do w.. 2022. 1. 19.
[C언어] #5. while 반복문과 do ~ while 반복문 printf("Welcome, Let's C Language."); // 초등학생도 쉽게 이해시켜주는 C언어 글을 포스팅합니다. 안녕하세요. 비전공자 출신 SW Test 엔지니어 Crush on Study입니다. 이번 글에서는 조건에 따라 다른 화면을 출력시킬 수 있도록 해주는 '조건문'에 대해 배워보겠습니다. Q. 먼저 이전 시간에 배운 내용을 잠깐 복습해봅시다. A. 1) for문에 대해 배웠습니다. - 프로그램이 어떤 특정 트리거에 의해서만 수행되는걸 원할 때 우리는 조건문을 통해 구현하기로 했습니다. if와 else if는 선언할 때, 옆에 조건식을 함께 적어준 다음 조건이 맞을 때, 수행할 구문을 아래 적어놔주었습니다. else는 '이 밖의 모든 것' 이라는 의미로 if와 else if에서 지정.. 2022. 1. 19.