C++ 如何以一种好的、简单的方式定义此值?

C++ 如何以一种好的、简单的方式定义此值?,c++,C++,我被困在函数参数的转换/定义中,非常感谢您的帮助。我相信这对任何有经验的c/c++人来说都很容易,但对我来说不是,现在不是 问题: uint8 Addr[] = {00,22,122,205,16,04}; uint8 *pAddr = &Addr; 创建要与MyComMand(uint8*pAddr)一起使用的正确参数,该参数将执行send(pAddr,6),该参数将使用这些参数循环以下6次: write(重新解释(pAddr)[i]) 我的问题是,pAddr必须指向一个6字节的数组

我被困在函数参数的转换/定义中,非常感谢您的帮助。我相信这对任何有经验的c/c++人来说都很容易,但对我来说不是,现在不是

问题:

uint8 Addr[] = {00,22,122,205,16,04};
uint8 *pAddr = &Addr;
创建要与MyComMand(uint8*pAddr)一起使用的正确参数,该参数将执行
send(pAddr,6)
,该参数将使用这些参数循环以下6次:

write(重新解释(pAddr)[i])

我的问题是,pAddr必须指向一个6字节的数组,我最好将其定义为无符号字节值(0-255)或十六进制00-FF

限制

功能不得改变。它只是关于创建参数

我的尝试:

uint8 Addr[] = {00,22,122,205,16,04};
uint8 *pAddr = &Addr;
但这会导致错误C2440(无法将uint(*)[6]转换为uint8*)

所需解决方案

我想知道一种好的、格式良好的方法来创建这个Addr数组或流,或者通过将它们的字节或十六进制值写入我的代码来传递给我的函数的对象,就像在我的尝试中一样。我可以使用boost库。谢谢大家帮我解决这个问题

你试过了吗

uint8 Addr[] = {0x0,0x16,0x7a,0xcd,0x10,0x4};
uint8 *pAddr = Addr;
?


注意:不要使用
0
前缀!它表示数字是八进制的,因此
010
表示12月的
8

您是否尝试过
uint8*pAddr=Addr?只需使用
Addr
,数组将在需要时衰减为指向其第一个元素的指针。执行此操作的显式方法是
&Addr[0]
:)说真的-doh-可能只是太早了,或者我还没有得到那些指针定义-你的提示有效;)但是您介意将其扩展到十六进制值的输入吗?这样我就可以写16页22页?也许你需要?要编写十六进制,请使用
0xNN
,比如255的
0xFF
。是的,你说得对,我有一些,但我需要一些时间来再次研究这些内容-在询问更多基本内容之前,请记住这一点。