본문 바로가기

프로그래밍/C++

char 배열 초기화 방법


char 배열뿐만 아니라 일반 배열도 마찬가지일 것 같다.


보통 char name[128]; 로 선언하고 초기화 할때 다음과 같은 방법을 사용한다.


1. name[0] = {0,};


2. memset(name, 0, sizeof(char) * 128);


아마 코딩의 간편함의 이유로 1번을 많이 사용할 것 같은데, 사실 내부적으로 원리는 같다.




어셈블리 코드를 보면 내부적으로 memset을 호출하고 있다. 


VS2015 를 사용했으며, 컴파일러마다 차이는 있을 것 같다.


그렇다면, 1번방법에서 컴마(,) 를 안찍으면 어떻게 될까?


name[0] = {0};


똑같이 배열이 0으로 초기화가 된다.


어셈코드도 동일하다.


이것또한 컴파일러마다 차이가 있겠지만 아직까지는 관용상 1번 방법을 많이 사용하는듯 하다.