minhas2   4년 전

프로그램문제를 풀다가 궁금한게 생겼습니다.

만약 2차원배열을 큰 크기로 동적할당하여 생성하여 안에 어떤값들을 넣은후,

그 배열을 모두 다시 초기화시켜놓은 후 새로운 값들을 넣으려고할때

그냥 delete로 배열들을 제거한 후 재생성하는게 빠를까요(재생성 후 초기화는 별도로 안한다는 가정 하입니다.)

아니면 배열 크기만큼 초기화를 하는게 빠를까요?

gallopsys   4년 전

배열 크기만큼 초기화를 하는 게 훨씬 빠르지요...

malloc이나 calloc, realloc과 같은 메모리 동적할당 함수는 Heap allocation에 소모되는 계산량 + n차원 배열을 할당하기 위한 Iteration에서 소모되는 시간적 비용까지 모두 고려해야하는 반면, memset이나 std::fill같은 경우는 할당된 메모리 영역에서 Iteration만 수행하면 되므로 후자가 당연히 빠르다고 볼 수 있다고 봅니다...

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