#define _CRT_SECURE_NO_WARNINGS
void PRINT(int* num, char* buf, EXAM *exam)
printf("buf2 = %s\n", buf);
printf("exam2[0].number = %d\n", exam[0].number);
printf("exam2[0].name = %s\n", exam[0].name);
printf("exam2[1].number = %d\n", exam[1].number);
printf("exam2[1].name = %s\n", exam[1].name);
int num1[5] = { 10, 20, 30, 40, 50 }; //초기값 설정
char buf1[50] = "hello maincodes !";
strcpy(exam1[0].name, "the codes");
strcpy(exam1[1].name, "maincodes");
for (i = 0; i < strlen(buf1); i++)
PRINT(num2, buf2, exam1);
//memset함수를 이용하여 메모리 배열 메모리 초기화
memset(num2, 0, sizeof(num2));
memset(buf2, 0, sizeof(buf2));
memcpy(num2, num1, sizeof(num1));
memcpy(buf2, buf1, sizeof(buf1));
memcpy(&exam2, exam1, sizeof(exam1)); //구조체 복사
PRINT(num2, buf2, exam2);
memset(num2, 0, sizeof(num1)); //배열
memset(buf2, 0, sizeof(buf1)); //배열
memset(&exam2, 0, sizeof(exam2)); //구조체 초기화
PRINT(num2, buf2, exam2);
memcpy
#include <string.h> // C++ 에서는 <cstring> void* memcpy(void* destination, const void* source, size_t num);예제
memcpy(arr, tarr, sizeof(arr));
copy
#include <algorithm> copy(initArray, initArray + n, v.begin()); // initArray내용을 n만큼 v에 복사 copy(v.begin(), v.end(), v2.begin()); // v의 내용을 v2에 복사
상세
template<class InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) { while (first!=last) { *result = *first; ++result; ++first; } return result; }예제
#include <iostream> #include <algorithm> // copy #include <vector> // vector using namespace std; int n = 7; int main() { vector<int> v(n); int initArray[] = { 10,20,30,40,50,60,70 }; copy(initArray, initArray + n, v.begin()); cout << "v contains:"; for (vector<int>::iterator it = v.begin(); it != v.end(); ++it) printf("%d ", *it); // vector<int> v2; 크기가 없어서 복사 실패 vector<int> v2; v2.resize(n); copy(v.begin(), v.end(), v2.begin()); vector<int>::iterator iter = v2.begin(); printf("\n%d", iter[3]); return 0; }실행결과
공유하기
게시글 관리
구독하기DR-Kim저작자표시 비영리 변경금지
- 카카오스토리
- 트위터
- 페이스북
'💎 > C++' 카테고리의 다른 글
[C++] cin, cout 시간 초과 문제 해결 (0)2020.10.16[C++] priority_queue 우선순위 큐 (0)2020.03.25[C++] map iterator(반복자) 활용 (0)2020.03.23[C++] string 메소드 정리 (0)2020.03.17[C++] vector 배열 중복 제거 하는 법 (0)2020.03.10글
배열 내용을 다른 배열에 한번에 복사하기
1.1) 실습
설정
이번에는, 배열의 내용을 다른 배열로 한번에 복사하는 예제를 보여드리겠습니다.
2 라인
memcpy 함수를 사용하기 위해서는, memory.h 혹은 string.h 를 include 하면 됩니다.
4 라인
배열 요소의 개수를 상수화합니다.
7 라인
복사할 목적지가 되는 배열을 선언합니다.
8 라인
복사할 대상이 되는 배열을 선언하고, 1 부터 10 까지의 정수로 초기화합니다.
10 라인
memcpy 함수를 이용하여, srcArr 의 배열의 시작 주소부터 시작해서, 이 배열의 전체 크기만큼 모두 한번에, 요소 값들을 dstArr 배열로 복사합니다.
11 ~ 14 라인
복사된 결과를 출력합니다.
[실행 결과]
(memcpy 함수 설명 참고)
//msdn.microsoft.com/en-us/library/aa246468(v=vs.60).aspx
공유하기
게시글 관리
구독하기kkikkodev 의 IT 이야기저작자표시
'1.1) 실습' 카테고리의 다른 글
1 초에 한 번씩 데이터 출력하기 (0)2015.06.08프로그램 강제로 종료시키기 (0)2015.06.08콘솔 화면 지우기 (6)2015.06.08소리 및 음악 재생하기 (1) - WinApi (4)2015.05.25의사 난수 (랜덤 숫자) 생성하기 (0)2015.05.17변수를 특정 값으로 초기화하기 (or 배열을 특정 값으로 한번에 초기화하기) (0)2015.05.17현재 틱 카운트 (TickCount) 를 이용하여 시간 재기 (0)2015.05.17화면 출력 (에코) 없이 키보드 입력 값 가져오기 (2)2015.05.17비동기적으로 사용자 입력이 있는지 확인하기 (0)2015.05.05콘솔 글자 색 변경하기 (4)2015.04.10COMMENT :1
by kkikkodev 2015. 5. 17. 22:52
댓글
name password homepage
비밀글
comment 댓글 남기기