在windows VC6編譯器上,編譯如下代碼:
1 typedef unsigned char BYTE;
2 vector<BYTE> pBuffer;
3
4 BYTE RtpHeader[12] ="abcdefg1234";
5 DWORD bufferLen = 160;
6 pBuffer.reserve(bufferLen);
7 pBuffer.assign(bufferLen, 0x00);
8 memcpy(pBuffer.begin(), RtpHeader, 12);
成功,而用g++(gcc) 4.4.7版編譯器沒有編譯成功,提示第8行
8:error: invalid cast from type 鈥榑_gnu_cxx::__normal_iterator<unsignedchar*, std::vector<unsigned char, std::allocator<unsigned char> >>鈥totype BYTE* ,可見g++編譯器嚴格的多,將第8行作如下改動即可編譯成功:
8 memcpy(&(*pBuffer.begin()), RtpHeader,12);