이것은 중복 일지 모르지만 정확한 상황을 다루는 다른 질문을 찾지 못했습니다 (아직).int의 주소를받지 않고 char []에 int를 memcpy 할 수없는 이유는 무엇입니까?
는 여기에 내가 할 노력하고있어 무엇 :
int n = 12;
char s[sizeof(n)];
memcpy(s, (char *)n, sizeof(n));
printf("%d", s);
을 기본적으로,이 n
의 주소를 얻을 필요없이 s
로 n
를 복사 할. 이걸 실행하면 세그먼트 오류가 발생합니다. 그러나 작동합니다 :
printf("%d", (char *)n);
그래서 문제가 memcpy 호출에 있음을 알고 있습니다. 왜 내가 char []에 int를 memcpy 할 수 없는가?
'memcpy'는 복사 할 데이터를 찾을 수있는 * 주소 *를 필요로합니다. – juanchopanza
주소가 왜 문제가됩니까? –
라이브러리 함수를 사용할 때 함수의 서명을 준수해야하기 때문에 그렇게 할 수 없습니다. –