我试图将Ptr放在C的框架的末尾。
void myFunction(uint8_t * Ptr)
{
uint8_t frame[] = {0x1, 0x2, 0x3, *Ptr}
}
int _main()
{
myFunction("Hello");
}
在这个解决方案中,由于8位,我只将“Hello”的H放入帧[4]。
之后我尝试了
strcat((char*)frame, (char*) StateTxtPtr);
但它不起作用。
解决方案应如下所示: frame = {0x1,0x2,0x3,“H”,“E”,“L”,“L”,“O”}
感谢您的帮助!
解决方案**
void myFunction(uint8_t * Ptr, uint32_t TxtSize)
{
uint8_t frame[25] = {0x1, 0x2, 0x3, *Ptr}
memcpy(&frame[3], Ptr, TxtSize);
}
int _main()
{
uint32_t TxtSize = strlen((char *)&txt[i][0]);
myFunction("Hello", TxtSize);
}
答案 0 :(得分:6)
你的问题没有任何意义。
你可能想要这样的东西:
uint8_t frame[8] = { 1, 2, 3 };
memcpy(frame + 3, "Hello", 5);
请注意,frame
必须为字符留出空间,并且memcpy()
用于避免编写字符串所具有的'\0'
- 终结符。