프로그래밍/공부
[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);