동적 메모리
-
동적 메모리 할당이란 프로그램의 실행 도중에 메모리를 할당 받는 것입니다. 필요한 만큼만 할당을 받고 또 필요한 때에 사용하고 반납합니다. 이로 인해 메모리를 효율적으로 관리하고 사용이 가능합니다. 메모리 영역은 스택(Stack :: 지역변수, 매개변수), 힙(Heap :: 동적 할당), 데이터(Data :: 전역변수, static), 코드(Code, Text :: 코드, 함수, 제어문) 으로 이루어져 있는데 동적 할당의 경우 힙 영역에 저장됩니다. main() { int *pi; pi = (int *)malloc(sizeof(int)); // 동적 메모리 할당 // ... // ... 동적 메모리 사용 // ... free(pi); // 동적 메모리 반납 } C에서 동적 메모리를 사용하는 함수로 mal..
[자료구조] 동적 메모리 할당과 반납동적 메모리 할당이란 프로그램의 실행 도중에 메모리를 할당 받는 것입니다. 필요한 만큼만 할당을 받고 또 필요한 때에 사용하고 반납합니다. 이로 인해 메모리를 효율적으로 관리하고 사용이 가능합니다. 메모리 영역은 스택(Stack :: 지역변수, 매개변수), 힙(Heap :: 동적 할당), 데이터(Data :: 전역변수, static), 코드(Code, Text :: 코드, 함수, 제어문) 으로 이루어져 있는데 동적 할당의 경우 힙 영역에 저장됩니다. main() { int *pi; pi = (int *)malloc(sizeof(int)); // 동적 메모리 할당 // ... // ... 동적 메모리 사용 // ... free(pi); // 동적 메모리 반납 } C에서 동적 메모리를 사용하는 함수로 mal..
2021.04.10 -
동적메모리의 2차원 배열에 관한 내용이다. int형 포인터 사이즈만큼의 공간을 8개 할당하고 그 할당된 데이터 각각의 데이터의 포인터에 int형 사이즈 6개를 할당하는 것이다. 그림으로 풀이하면 위와 같다. 가운데 8개의 데이터들은 각각 하나의 변수만큼이 6개 만큼의 위치를 포함하고 있는 어떠한 배열의 첫번째 포인터값을 가리키는 것이다. 즉 가운데 주황색 네모는 위 6개 배열의 맨 첫번째 데이터를 가리키며 그 옆 그린색 네모는 가리키는 6개 배열의 맨 첫번째 데이터를 가리키는 것이다. 이런식으로 반복되어 48개의 데이터를 만들어내어 2차원 배열을 만들어낸다. y가 0일때 x값이 0부터 5까지 증가하며 데이터를 만들어내고 x가 6이되었을 때 y는 1이 되며 다시 그 값에 해당하는 x값이 0부터 5까지 검증..
C 프로그래밍 (20) - 동적 메모리 2차원 배열동적메모리의 2차원 배열에 관한 내용이다. int형 포인터 사이즈만큼의 공간을 8개 할당하고 그 할당된 데이터 각각의 데이터의 포인터에 int형 사이즈 6개를 할당하는 것이다. 그림으로 풀이하면 위와 같다. 가운데 8개의 데이터들은 각각 하나의 변수만큼이 6개 만큼의 위치를 포함하고 있는 어떠한 배열의 첫번째 포인터값을 가리키는 것이다. 즉 가운데 주황색 네모는 위 6개 배열의 맨 첫번째 데이터를 가리키며 그 옆 그린색 네모는 가리키는 6개 배열의 맨 첫번째 데이터를 가리키는 것이다. 이런식으로 반복되어 48개의 데이터를 만들어내어 2차원 배열을 만들어낸다. y가 0일때 x값이 0부터 5까지 증가하며 데이터를 만들어내고 x가 6이되었을 때 y는 1이 되며 다시 그 값에 해당하는 x값이 0부터 5까지 검증..
2020.08.15 -
구조체 자료형 int와 char를 생성해주고 char의 공간을 100으로 부여해준다. book 구조체 포인터로 p를 생성해주고 book구조체로 형변환 한다음 구조체의 2배 만큼의 공간을 할당해준다. 구조체 포인터 같은 경우 -> 를 이용해 해당 변수에 접근 가능하다. p라는 구조체의 number 변수에 1을 삽입한다는 뜻이다. 그리고 title 변수에도 문자를 입력한다. 각각의 구조체 변수의 값을 넣어 초기화 해주고 이것으로 총 2개만큼의 책 정보가 들어갈 수 있는 배열같은 것이 만들어진 것이다. 다음으로 현재 자신이 관리하고 있는 모든 책의 정보를 출력하는 함수를 만든다. void shoeBook(struct Book *p, int n) n은 책의 갯수를 의미하며 포인터p는 구조체 book을 동적 메모..
C 프로그래밍 (19) - 동적 메모리 이용하기 II구조체 자료형 int와 char를 생성해주고 char의 공간을 100으로 부여해준다. book 구조체 포인터로 p를 생성해주고 book구조체로 형변환 한다음 구조체의 2배 만큼의 공간을 할당해준다. 구조체 포인터 같은 경우 -> 를 이용해 해당 변수에 접근 가능하다. p라는 구조체의 number 변수에 1을 삽입한다는 뜻이다. 그리고 title 변수에도 문자를 입력한다. 각각의 구조체 변수의 값을 넣어 초기화 해주고 이것으로 총 2개만큼의 책 정보가 들어갈 수 있는 배열같은 것이 만들어진 것이다. 다음으로 현재 자신이 관리하고 있는 모든 책의 정보를 출력하는 함수를 만든다. void shoeBook(struct Book *p, int n) n은 책의 갯수를 의미하며 포인터p는 구조체 book을 동적 메모..
2020.08.15