void OnReceived(std::shared_ptr<uint8_t> buffer, int len) {
.........
}
int main(){
std::vector<char> buffer(1000);
OnReceived((std::shared_ptr<uint8_t>)buffer.data(),rcvlen);
}
我正在尝试施放它,但我不知道为什么我不能!!!
Error 1 error C2664: 'std::tr1::_Ptr_base<_Ty>::_Reset0' : cannot convert parameter 1 from 'char *' to 'uint8_t *' c:\program files\microsoft visual studio 10.0\vc\include\memory 1705
那我怎么转换呢?
最佳答案
你真的不想那样做。除了 char 和 uint8_t 可能是不同的类型这一事实之外,即使您强制编译代码,您的缓冲区也会被释放两次,这可能会使您的程序崩溃。只需更改 OnReceived 以接受原始指针。
关于c++ - 无法将参数 1 从 'char *' 转换为 'uint8_t *',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131721/