Heap 3

01. C언어_컴퓨터의 메모리 구조

메모리 구조- 컴퓨터의 메모리영역는 프로세스의 주소공간으로 구성되어 있으며,  4가지의 가상 공간으로 나뉘어져 있다 (code, data, heap, stack) 프로그램의 메모리 배치1. Code (Read Only)- 사용자가 작성한 프로그램 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환하여 저장되는 공간으로 프로그램이 실행되고 끝날 때까지 메모리에 남아있음- 구성 요소  : 명령어(기계어 코드) 2.1 Data (Read Only & Read write) - 변수, 상수 등의 프로그램이 사용하는 데이터를 저장하는 공간으로 프로그램이 실행되고 끝날 때까지 메모리에 남아있음- 구성 요소 : 문자열 상수(RO), 정적 변수(RW), 초기화된 외부 변수(RW) 등 2.2 BSS (Read wr..

C언어 2024.05.15

03. C언어_동적 메모리 할당(1차원 배열)

동적 메모리 할당이란?-  프로그램 수행중에 필요한 크기의 메모리를 할당받아 사용하는 것을 동적 메모리 할당이라고 한다.- malloc() 함수로 메모리를 할당받고, 사용이 끝난 메모리는 free()함수로 해제한다.- 동적 할당 메모리는 RAM 내의 heap영역에 할당된다.- 동적 할당 메모리는 이름이 없고 메모리의 주소만 가진다.- 동적할당 메모리는 할당시 부터 해제시까지 전체 프로그램에서 유효하며, 해제를 따로 하지 않았을 떄에는 main 함수가 끝날때 해제된다.- 장점 ) 프로그램의 사용중에 프로그래머가 원하는 만큼 데이터를 확보/제거하며 유동적으로 데이터를 관리할 수 있다. malloc, free 예시- malloc함수는 할당하고자하는 메모리의 크기를 입력받아 메모리를 할당한다. 할당에 성공 시 ..

C언어 2024.05.15

04. C언어_동적 메모리 할당 (2차원 배열)

1. 행, 열의 파라미터가 주어진 이차원 배열의 동적메모리 할당예제) 학생수를 입력받아 5과목에 대한 성적처리를 해라 (int(*p)[5] 배열 포인터 활용) #include//파일 입출력#include //동적 메모리 할당typedef int(*multiPtr)[5]; //원소 5개를 동시에 가리키는 배열 포인터 자료형 타입 선언multiPtr myAlloc(int); //동적 메모리의 시작주소를 나타내는 배열 포인터의 주소 반환void myDelete(multiPtr); //동적 메모리의 시작주소를 받아 동적메모리 해제void dataInput(multiPtr, int); //동적 메모리의 시작주소와 row수를 전달인자로 받아 데이터 입력void dataOutput(multiPtr, int); //동..

C언어 2024.05.15