본문 바로가기

분류 전체보기837

메모리 관리와 메모리의 동적할당 1. C언어의 메모리 구조 프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련이 된다. 그리고 바로 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언된다는 것이다. ​ -메모리 구성 프로그램 실행시 운영체제에 의해서 메모리 구조는 다음과 같이 네개의 영역으로 구분이 된다. 메모리 공간을 나눠놓은 이유는 커다란 서랍자으이 수납공간이 나뉘어 있는 이유와 유사하다. 메모리 공간을 나눠서 유사한 성향의 데이터를 묶어서 저장하면, 관리가 용이해지고 메모리의 접근 속도가 향상된다. ​ -메모리 영역별로 저장되는 데이터 유형 ​ *코드 영역 (Code Area) 코드 영역은 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간이다. 따라서 CPU는 코드 영역에 저장된.. 2021. 1. 27.
문자와 문자열 관련 함수 1. 스트림과 데이터의 이동 -무엇이 입력이고 무엇이 출력인가? 데이터의 입력과 출력은 프로그램의 흐름을 뜻하는 것이다. 그렇다면 무엇이 '입력'이고 무엇이 '출력'인가? 프로그램을 중심으로 프로그램 안으로 데이터가 흘러 들어오는 것이 입력이고, 프로그램 밖으로 데이터가 흘러 나가는 것이 출력이다. 가장 대표적인 입력장치로는 키보드가 있으며, 파일도 입력의 대상이 될 수 있다. 그리고 대표적인 출력장치로는 모니터가 있으며, 파일 역시 출력의 대상이 될 수 있다. ​ -데이터의 이동수단이 되는 스트림 서로 떨어져 있는 개체를 연결해주는 다리의 역할을 하는 매개체를 '스트림(Stream)'이라 한다. ​ 실행중인 프로그램과 모니터를 연결해주는 '출력스트림'이라는 다리가 놓여있고, 실행중인 프로글매과 키보드를.. 2021. 1. 26.
파일 입출력 1. 파일과 스트림(Stream), 그리고 기본적인 파일의 입출력 -저기 저파일에 저장되어 있는 데이터를 읽고싶을때 프로그램상에서 파일에 저장되어 있는 데이터를 참조하길 원한다고(읽기원한다고) 할때, 이 때 가장 먼저해야 할일은 우리가 구현한 프로그램과 참조할 데이터가 저장되어 있는 파일 사이에 데이터가 이동할 수 있는 다리를 놓는 일이다. 이러한 데이터의 이동의 경로가 되는 다리를 가리켜 '스트림(Stream)'이라 한다. 프로그램과 파일사이에 스트림을 형성해야 데이터를 주고 받을 수 있다. 스트림이라는 것은 운영체제에 의해서 형성되는 소프트웨어 적인 상태를 의미하는 것일 뿐이다. 따라서 프로그램과 파일 사이에 스트림이 형성되었다고 하면 다음과 같이 이해하면 된다. "파일로 부터 데이터를 읽어 들일(파.. 2021. 1. 23.
1차원 배열, 포인터 배열이란? 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있는 것이 배열이다. 배열의 선언 방법 자료형 배열이름 길이정보 순이다 즉 int arr[20]; //int형 변수 20개로 이뤄진 배열, 이름은 arr이다. 4 * 20개 byte double arr2[10]; // 길이가 10인 double형 1차원 배열 8*10개 byte 이렇게 배열을 선언 가능하다 . 각 배열마다 각 자료형의 크기만큼 바이트가 할당되어 있다. 배열의 접근 방법 int arr[3]; //길이가 3인 int형 1차원 배열 위의 배열로 각 배열에 접근을 하는 방법은 .. arr[0]= 1; // 배열 arr에 첫 번째 요소에 1을 저장 arr[1]= 2; // 배열 arr에 두 번째 요소에 2을 저장 arr[3]=.. 2021. 1. 23.
구조체와 사용자 정의 자료형2 1. 구조체의 정의와 typedef 선언 구조체 변수를 선언할 때에는 무조건 struct 선언을 추가해야 한다. 하지만 이것이 여간 귀찬흔게 아니다. int형 변수 num을 선언할 때 그저 int num이라 선언하듯이, person형 구조체 변수 man을 선언할 때에도 struct 선언 없이 그저 person man이라 하고 싶다. 그렇다면 구조체를 정의한 후에 typedef 선언을 추가해야 한다. - typedef 선언 typedef 선언은 기존에 존재하는 자료형의 이름에 새 이름을 부여하는 것을 목적으로 하는 선언이다. 예를 들어서 다음과 같이 typdef선언을 하게 되면 typedef int INT; //int의 또 다른 이름 INT를 부여! 이로 인해 다음의 뜻을 컴파일러에 전달하게 된다. 자료형.. 2021. 1. 22.
구조체와 사용자 정의 자료형1 1. 구조체란 무엇인가? 구조체는 프로그램 개발에 있어서 매우 중요한 요소이다.(없어서는 안되는 요소이다). ​ - 구조체의 정의 '구조체(Structuer)라는 것은 하나 이상의 변수(포인터 변수와 배열포함)를 묶어서 새로운 자료형을 정의하는 도구이다. 즉 구조체를 기반으로 우리는 새로운 자료형을 정의할 수 있다. 물론 이렇게 정의되는 자료형은 기본 자료형과 그 성격에 있어서 조금만 차이가 있다. 프로그램상에서 마우스의 좌표정보를 저장하고 관리해야 한다고 가정한다. 그러면 다음과 같이 두 개의 변수를 선언해야 한다. int xpos; int ypos; ​ 그런데 이 둘은 항상 함께하기 마련이다. 이 둘은 서로 독립된 정보를 표현하는 것이 아니라, 마우스의 위치라는 하나의 정보를 표현하기 때문이다. 예를.. 2021. 1. 21.