이번에는, 변수 혹은 배열을 특정 값으로 가지고 일괄적으로 한번에 초기화하는 방법을 알려드리겠습니다.


#include <stdio.h>
#include <memory.h> // or #include <string.h>

#define ARR_SIZE 10

int main(int argc, char* argv[]){
	char c;
	short s;
	int i;
	long l;
	float f;
	double d;
	int arr[ARR_SIZE];
	int j;
	memset(&c, 0, sizeof(char));
	memset(&s, 0, sizeof(short));
	memset(&i, 0, sizeof(int));
	memset(&l, 0, sizeof(long));
	memset(&f, 0, sizeof(float));
	memset(&d, 0, sizeof(double));
	memset(arr, 0, sizeof(int) * ARR_SIZE); // or memset(arr, 0, sizeof(arr));
	printf("c : %d\ns : %d\ni : %d\nl : %ld\nf : %f\nd : %f\n", c, s, i, l, f, d);
	printf("arr : ");
	for (j = 0; j < ARR_SIZE; j++){
		printf("%d ", arr[j]);
	}
	printf("\n");
	return 0;
}


2 라인

memset 함수를 사용하기 위해서는, memory.h 혹은 string.h 를 include 하면 됩니다.


4 라인

배열 요소의 개수를 상수화합니다.


7 ~ 12 라인

char, short, int, long, float, double 형 변수를 각각 선언합니다.


13 라인

int 형 배열을 ARR_SIZE ( = 10) 로 선언합니다.


15 ~ 20 라인

memset 함수를 이용하여, 해당 변수들을 특정 값인 0 으로 초기화 하고 있습니다.


21 라인

memset 함수를 이용하여, 배열을 0 으로 모두 초기화 하고 있습니다.


22 ~ 27 라인

초기화한 변수들과 배열의 값을 모두 출력하고 있습니다. 0 이 출력되는 것을 볼 수 있습니다.


[실행 결과]




(memset 함수 설명 참고)

https://msdn.microsoft.com/en-us/library/aa246471(v=vs.60).aspx

by kkikkodev 2015. 5. 17. 22:35