데이터 버퍼 (패킷으로 사용됨)에서 현재 위치를 추적해야하므로 bufferLoc 및 dataBuffer라는 두 변수를 사용하고 있습니다.C++ 주소 처리 (포인터)
char dataBuffer[8192];
char** bufferLoc;
bufferLoc을 사용하여 dataBuffer의 시작 위치를 가리키고 있습니다. 그러나 bufferLoc를 증가 시키더라도 메모리의 실제 주소에는 영향을 미치지 않습니다.
bufferLoc = (char**)&dataBuffer;
cout << &bufferLoc << endl;
bufferLoc++;
cout << &bufferLoc << endl;
이 두 인쇄물은 동일한 위치를 출력합니다. 내 오류가 버퍼 캐스팅 자체, 또는 완전히 다른 무언가와 함께해야합니까?
도움 주셔서 감사합니다.
그와'& bufferLoc'이 출력되고있는 것입니다. 포인터의 ** 주소 ** (스택 **)입니다 ... – mpontillo
왜'unsigned int *'로 변환 했나요? – Hurkyl
@Hurkyl 왜냐하면 캐스팅하지 않고 주소 대신 문자열을 출력하기 때문입니다. – alexisdm