본문 바로가기

malloc2

[C] 가변 배열 (malloc) [C] 가변 배열 (malloc) (update) 2022.03.10 코드에 오타가 많아 수정했습니다. 그동안 배웠던 배열은 크기가 고정이었다. int arr[10] = {}; // 크기 10개 짜리 배열. 이건 가능할까? //1번 경우 int a=100; int arr[a] = {}; //2번 경우 int iInput = 0; scanf_s("%d", &a); int arr[a] = {}; // 지역변수인데 실행이전 컴파일러가 값을 확정할 수 없다. // 프로그램을 실행시켜봐야 아는 자료형이 어디 있겠느냐~ 배열 개수를 선언할 때에는 변수를 사용할 수 없다. 가변 배열을 만들기 위해서는 힙 메모리 영역을 사용할 수밖에 없다. - 가변 배열 만들기 가변 배열을 할 수 있는 자료형을 분할 구현을 해서 만든.. 2022. 1. 10.
[C] 동적 할당 malloc( ); [C] 동적 할당 malloc( ); 동적 할당을 배우기 앞서 이때까지 우리가 배운 변수들의 메모리 영역을 살펴보자. 메모리 영역 스택 데이터 ROM 힙 영역(동적 할당) 변수 지역 변수 (스택 영역) 전역 변수, 정적 변수, 외부 변수 (데이터 영역) 변수, 포인터가 미리 선언된 것이 아닌, 프로그램이 실행이 되면 생기는 걸 만들고 싶다! - 동적 할당이란? 프로그램 실행 도중에 내가 원하는 만큼의 메모리를 요청할 수 있는 것. 이때 사용하는 메모리 영역은 힙 영역이다. 그곳에 내가 원하는 만큼의 크기의 메모리를 받고 주소를 받는다. 거기를 어떻게 사용할지는 포인터를 통해 한다. 같은 메모리 공간이어도 포인터 타입에 따라 바뀜. int main() { int* pInt = (int*)malloc(100.. 2022. 1. 10.