따봉도치야 고마워

[c/c++] 배열 한번에 초기화하는 법 본문

프로그래밍/공부

[c/c++] 배열 한번에 초기화하는 법

따봉도치 2020. 2. 18. 12:34

 

일단 0으로 초기화하는 방법은

int array[10] = {0,}; 

 

그럼 다른 값으로 초기화 하려면

int array[10] = {5,}; 

가 될까 싶었는데, 결론적으론 안된다. (첫 원소값만 5가 되고 나머지는 0으로 초기화 된다)

 

 

그럼 특정 값으로 배열을 초기화하는 방법은 뭐가 있을까

 

1.for문 돌리기

이게 싫어서 찾아보기 시작한건데, 오히려 몇몇 방법에 비해 이게 더 간단하고 빠르다는 말이 많다

 

2.GCC를 사용한다면

int array[100] = { [0 ... 99] = -1 }; //0부터 99까지 -1로 초기화

 

3.C++인 경우 fill_n 함수 사용

std::fill_n(array, 100, -1); 

 

4.기타

C#의 경우 Enumerable.Repeat(값, 사이즈).ToArray()를 사용하면 된다.

ex) bool[] booleanArray = Enumerable.Repeat(true, 10).ToArray(); 

 

C에서 -1이나 0은 memset함수로 초기화가 가능하다.

ex) memset(arr, 0, sizeof(int) * SIZE);

Comments