UXDE dot Net Wordpress Themes

memcpy memset 예제

문자열 디렉토리에서 예제 memcmp, memcpy, memmove 및 memset 구현을 찾을 수 있습니다. 설명: (str + 13) 문자열의 첫 번째 공간 (0 기반 인덱스)를 가리키며 “GeeksForGeeks는 괴짜를 프로그래밍하기위한 것입니다.”, 그리고 memset () 첫 번째부터 시작 문자 `.` 주어진 문자열의 최대 8 문자 위치따라서 우리는 sh로 출력을 얻을 자신의. 이 버전의 memcpy 핸들이 겹치기 때문에 실제로 memmove에도 이 구현을 사용할 수 있습니다. 인수 dest 및 src는 각각 대상 및 소스 메모리 블록을 가리킵니다. 개수는 복사할 바이트 수를 지정합니다. 반환 값은 가장 dest입니다. 두 메모리 블록이 겹치면 함수가 제대로 작동하지 않을 수 있습니다. 다음에 설명한 memmove() 함수를 사용하여 겹치는 메모리 블록을 처리합니다. memcpy()는 아래 프로그램에서 시연됩니다. memset()을 사용하여 메모리 블록을 지정된 값으로 초기화합니다. 이 함수는 문자 char만 초기화 값으로 사용할 수 있으므로 0으로 초기화하려는 경우를 제외하고는 문자 char 이외의 데이터 형식 블록으로 작업하는 데는 유용하지 않습니다. 즉, memset()를 사용하여 값 99에 대한 형식 int의 배열을 초기화하는 것은 효율적이지 않지만 모든 배열 요소를 값 0으로 초기화할 수 있습니다.

memset()은 아래 프로그램에서 시연됩니다. 소스와 대상이 겹치지 않으면 memcpy()가 정상적으로 작동합니다. temp[] 위치 17(문자 q부터 z까지)에서 시작하는 10자(문자 q에서 z)는 5번 이지만 14로 복사되었으며, 여기서 문자 e는 n이 원래 위치했습니다. 그러나 소스와 대상이 겹치는 경우 상황이 다릅니다. 함수가 위치 4에서 위치 6까지 10자를 복사하려고 하면 8개의 위치가 겹칩니다. n을 통과하는 문자 e가 p를 통해 문자 g 위에 복사될 것으로 예상할 수 있습니다. 대신 문자 e와 f가 다섯 번 반복됩니다. memcpy() 는 버퍼라고도 하는 메모리 블록 간에 바이트의 데이터를 복사합니다.

이 함수는 복사되는 데이터 형식에 대해 신경 쓰지 않으므로 바이트별 정확한 바이트 복사본을 만듭니다.