在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);