c++ - 无法将参数 1 从 'char *' 转换为 'uint8_t *'

标签 c++ memory

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/

相关文章:

c++ - 副作用 C++ vector 复制和删除

PHP 在不将文件加载到内存的情况下添加到文件中?

python - 当我执行python脚本时,RAM满了并且PC崩溃了。

java - 退出 java (Grails) 应用程序后, "used"内存未释放

c++ - 如何正确序列化线程访问控制循环的标志

c++ - 有没有办法通过getter将二维数组作为成员变量返回?

c++ - 错误 : '...' does not name a type

c++ - boost 中有一个 DAG 图,没有顶点描述符失效

linux - Windows 与 Linux 的内存使用情况

linux - 如何查看Linux服务器上分配给tomcat的内存