C언어3 18_동적할당1(Dynamic Allocation) - malloc C언어에서 동적 할당의 개념이란? 메모리를 좀 더 효율적으로 쓰기 위해 사용하는 개념이다. 어떻게 효율적으로 쓸까? 프로그래머는 동적 할당을 통해 프로그램이 실행되는 런타임 상태일 때 동적으로 메모리에 할당할 수 있게 된다. 필요한 메모리의 크기가 컴파일 시간이 아니라 런타임에 결정될 수 있다. 이러한 특성은 메모리 크기를 미리 결정할 수 없거나 사용자 입력 또는 기타 프로그램 조건에 따라 달라질 때 유연한 프로그래밍을 할 수 있게 된다. 먼저 메모리 영역에 대해 알아보고, 어떤 영역이 동적 할당이 이루어지는지 알아보자. Code Area 함수와 상수, 실행한 프로그램의 소스코드가 저장되는 공간이며, 함수나 상수는 컴파일 단계에서 검사를 마치고 저장되므로 이곳은 정적 메모리이다. Data Area 전역 .. 2023. 4. 26. 11_구조체(structure) Structure는 구조라는 뜻이고, c언어에서 structure는 기본 자료형을 조합하여 사용자가 정의하는 자료형으로 만들어 사용하는 것을 의미한다. 사용자 정의 자료형이라고 하며, 구조체를 선언할 때 struct키워드를 사용하여 선언한다. struct Monster { char Normal; int Rare; short Hero; long long Legend; } 구조체를 선언함으로써 char형 공간과 int, short, long long의 공간을 모두 쓸 수 있게 되었다. long long 8byte Legend (멤버) int 4byte Rare (멤버) short 2byte Hero (멤버) char 1byte Normal(멤버) 이러한 구조체의 공간을 이루고 있는 기본 자료형들을 멤버라고 .. 2023. 4. 5. 09_반복문1(while, do while) while이라는 키워드는 반복문에 쓰이며, 반복해서 실행할 명령이 있을 때 사용한다. 조건식이 참이면 해당 명령을 계속 반복하는 구조를 가지고 있고, 참이 아니라면 중단하고 다음 명령을 실행한다. while(참 or 거짓) { 실행할 명령 } #include int main() { while(1) { printf("안녕하세요!"); } } 위의 코드는 while문 안에 1이 true이므로 "안녕하세요!"를 무한 반복하게 된다. 해당 반복문을 빠져나오지 못해 다음 명령을 실행하지 못하는 현상이 생겨나는데 이를 무한 루프라고 한다. 반복문을 사용할 때는 무한 루프에 빠지지 않도록 주의한다. #include int main() { int count = 0; // 초기식 : 반복문을 제어하기 위해 처음 실행하는.. 2023. 3. 30. 이전 1 다음