프로그래밍/c++

[c++] memset 으로 1차원, 2차원 배열 초기화 하기!

rrruu 2020. 9. 18. 09:54
반응형

memset 사용 1차원 배열 초기화 방법

memset(배열, 초기화 할 수, 초기화 할 메모리 크기)

#include <iostream>

using namespace std;

int main()
{
	int arr[10];

	for (int i : arr)
		cout << i << endl;

	memset(arr,0,sizeof(arr));
	
	for (int i : arr)
		cout << i << endl;

	return 0;
}

예제 코드를 실행하면 memset 하기전에는 쓰레기 값이 출력되지만

memset 이후에는 0으로 배열이 초기화 되어서

0값이 출력 되는것을 확인 할 수 있다.

 

memset 사용 2차원 배열 초기화 방법

#include <iostream>

using namespace std;

int main()
{
	int arr[10][10];
	int size = sizeof(arr) / sizeof(arr[0]);

	for(int i = 0; i<size; i++) //초기화
		memset(arr[i], 0, sizeof(arr[i]));

	for (int i = 0; i < size; i++) //출력용 없어두 됨 ㅋ
	{
		for (int j = 0; j < size; j++)
		{
			cout << arr[i][j]<<",";
		}
		cout << endl;
	}
	
	return 0;
}

걍 for문 쓰면됨ㅋㅋ

반응형