在C 解决方案中,我正在处理的我的功能返回字符串参考。像const std::string& getData() const {return mData;}
一样,MDATA是std::string mData;
。现在,我想将其转换为uint8_t
数组以将其传递给另一个功能指针。
/* in another header -> typedef uint8_t U8; */
const std::string& d = frame.getData();
U8 char_array[d.length()];
/* here I want to put the d char by char in char_array*/
strcpy
已弃用,所以我使用的是 strcpy_s
,例如 strcpy_s(char_array, d);
当然我得到哪个couldn't match type char(&)[_size] against unsigned char[]
以及对char*
的静态或重新解释铸造也不起作用。
使用向量,您正在编写的是VLA,这不是有效的C (U8 char_array[d.length()]
)。然后使用std::copy
。
const std::string& d = frame.getData();
std::vector<U8> char_array(d.length() + 1, 0);
问题是您是否需要结束字符串