0
void*
걸리고, 일부 메모리를 복사 한 다음 포인터를 이동하는 함수를 만들려고합니다. 그것은 무효 포인터이기 때문에 , 나는 내가 char*
에 캐스팅과 같이, 그 이동 거라고 생각 : 약 ((char*)dest)
void * char로 캐스트 * lvalue가 아닌?
나는 그것이라고 생각하는 다음 작품 가입일 :표현을 말하는
이PVOID SendAndMoveHead(PVOID dest, const Message& message, const size_t& size) { PVOID ret = CopyMemory(dest, (PVOID)message.msg.c_str(), size); ((char*)dest) += size; return ret; }
그러나 VS 불평 나에게 수정 좌변을해야합니다
PVOID SendAndMoveHead(PVOID dest, const Message& message, const size_t& size)
{
PVOID ret = CopyMemory(dest, (PVOID)message.msg.c_str(), size);
char* d = (char*)dest;
d += size;
return (PVOID)d;
}
누군가가 첫 번째 버전이 작동하지 않아야하는 이유에 대해 밝힐 수 있다면 정말 고맙겠습니다.
할당의 왼쪽 피연산자를 형 변환 할 수 없습니다. – metamorphling
[lvalue 캐스트가 왜 작동합니까?] (https://stackoverflow.com/questions/15343276/why-does-an-lvalue-cast-work) –
아마도이 태그는 C++가 아니라 C 태그 여야합니다. – nwp