No!
The first one is correct, because it is adding an offset (in bytes) to the starting address. This is the type of thing you would do when receiving the data from a byte stream.
The second one is adding an offset in dataLength type sizes, which would be an error in this case.
Example:
int dataLength;
size_t cbLeftToReceive = 2;
BYTE* bp = (BYTE*)(&dataLength) + sizeof(dataLength) - cbLeftToReceive;
BYTE* bp = (BYTE*)(&dataLength + sizeof(dataLength) - cbLeftToReceive);</br>