이번에는, 배열의 내용을 다른 배열로 한번에 복사하는 예제를 보여드리겠습니다.


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

#define ARR_SIZE 10

int main(int argc, char* argv[]){
	int dstArr[ARR_SIZE];
	int srcArr[ARR_SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int i;
	memcpy(dstArr, srcArr, sizeof(srcArr)); // or memcpy(dstArr, srcArr, sizeof(int) * ARR_SIZE);
	for (i = 0; i < ARR_SIZE; i++){
		printf("%d ", dstArr[i]);
	}
	printf("\n");
	return 0;
}


2 라인

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


4 라인

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


7 라인

복사할 목적지가 되는 배열을 선언합니다.


8 라인

복사할 대상이 되는 배열을 선언하고, 1 부터 10 까지의 정수로 초기화합니다.


10 라인

memcpy 함수를 이용하여, srcArr 의 배열의 시작 주소부터 시작해서, 이 배열의 전체 크기만큼 모두 한번에, 요소 값들을 dstArr 배열로 복사합니다.


11 ~ 14 라인

복사된 결과를 출력합니다.


[실행 결과]




(memcpy 함수 설명 참고)

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

by kkikkodev 2015. 5. 17. 22:52