sujae03   4년 전

안녕하세요,


2차원 배열 동적할당할 때 메모리는 heap영역에 생기게 되잖아요?

1. 이렇게 malloc이용해서 동적할당 할 때랑

2. 단순히 배열 만들어 줄 때랑

같은 크기로 만들어준다면 동적할당으로 만들 때가 메모리를 더 많이 사용하게 되나요 ???

같은 문제를 1.동적할당 으로도 풀어보고, 2. 배열할당 으로도 풀어봤는데

1번의 경우에 메모리 크기가 조금 더 크게 나와서요.


왜죠 ???

yukariko   4년 전

malloc으로 할당되는 메모리가 항상 지정한 메모리크기만큼만 할당하지는 않을겁니다. 그보다 덜 할당하진 않겠지만 더 할당할 순 있죠

그리고 배열은 스택메모리를 사용하게되는데 이미 할당된 스택메모리에서 배열을 잡을 확률이 높기때문에 메모리 차이가 있을것 같습니다.

kyhdudgns113   4년 전

int matrix[10]     ->   int 크기만큼 10개를 선언함


int *pointer        -> int * 크기만큼 1개를 선언함
pointer = malloc(size_int * 10)   -> int 만큼 10개를 선언함

kyhdudgns113   4년 전

1차원일때랑 마찬가지로 2차원일때도 동적으로 할당하면 메모리 차이가 나겠죠? ㅎㅎ

댓글을 작성하려면 로그인해야 합니다.