C++ 개념 정리

32. memcpy

CE : 하랑 2026. 3. 2. 11:47

 

버퍼(buffer)라는 임시 메모리 공간

버퍼를 이용하면 입력과 출력을 좀 더 효율적으로 처리

 


 

memcpy() 함수는 복사 대상 버퍼 크기를 초과하여 복사를 진행할 수 있다.

이로인해 오버플로우 발생 위험이 있어 MS(Microsoft)에서 " memcpy_s() " 함수를 공개했다.

복사 대상 버퍼 크기와 복사할 데이터의 크기를 명시함으로써 함수의 안전성이 좋아졌다.

 

// &Data[WriteOffset] 주소값에
// _Size 크기만큼
// _Data 주소값에 있는 데이터를 
// _Size 크기만큼 복사해라.
// &Data[WriteOffset]<= _Data

 

memcpy_s(&Data[WriteOffset], _Size, _Data, _Size);
int main()
{
	std::vector<char> Data;


	std::string Text = "abcdeddsfsasf";

	Data.resize(Text.size());

	const void* _Data = Text.c_str();

	memcpy_s(&Data[0], Text.size(), _Data, Text.size());

	std::cout << &Data[0];
}

 

 

'C++ 개념 정리' 카테고리의 다른 글

33. std::function  (0) 2026.03.02
31. 파일 입출력  (0) 2026.03.02
30. filesystem  (0) 2026.03.02
29. namespace  (0) 2026.03.02
27. static VS extern  (0) 2026.03.01