2011-03-01 52 views
1

我该如何提供一个重载以获取矢量参数?我如何提供一个重载来获取矢量参数?

void res(uint8_t* buffer, int len) 
{ 
std::vector<uint8_t> buf(buffer, buffer + len); 
// here i want to pass buf as uint8_t* to onther func 
pack((uint8_t*)buf, len));// error 
} 

IntelliSense: no suitable conversion function from "std::vector<uint8_t, std::allocator<uint8_t>>" to "uint8_t *" 
+1

以何种方式涉及这个重载? – sbi 2011-03-01 21:12:34

回答

9

传递第一个元素的地址。

pack(&buf[0], len); 
+0

或者',buf.size()' – 2011-03-01 21:12:59

+0

@NikolaSmiljanić - 它会起作用吗? – Abanoub 2011-03-01 21:13:03

+0

这样做时,请记住可以重新分配矢量,第二次访问指针时第一个元素可能不会位于同一地址。 – Fred 2011-03-01 21:13:26

相关问题