내 자신의 memcopy 버전을 구현하라는 요청을 받았습니다. 이것은 내가 인터넷에서 발견 한 것입니다. 우리가 혼란스럽게 생각하는 것은 두 개의 void *
포인터가 있다는 것입니다. 왜 우리는 char*
에 그들을 타입 변환합니까?memcopy 구현
이 정보가 정확합니까?
// A C implementation of memcpy()
#include<stdio.h>
#include<string.h>
void myMemCpy(void *dest, void *src, size_t n)
{
// Typecast src and dest addresses to (char *)
char *csrc = (char *)src;
char *cdest = (char *)dest;
// Copy contents of src[] to dest[]
for (int i=0; i<n; i++)
cdest[i] = csrc[i];
}
재미 "나는 memcopy 내 자신의 버전을 구현하기 위해 질문을 받았다.이 내가 인터넷에서 찾을 것입니다."입니다 :) –
기술적으로 그것이 '해야 'char' 대신'unsigned char'을 사용합니다. – EOF
@Anni_housie 아마도 memcpy를 의미할까요? :) –