将整数指针放入数组

时间:2014-01-17 16:05:42

标签: c

我试图将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);
}

1 个答案:

答案 0 :(得分:6)

你的问题没有任何意义。

你可能想要这样的东西:

uint8_t frame[8] = { 1, 2, 3 };

memcpy(frame + 3, "Hello", 5);

请注意,frame必须为字符留出空间,并且memcpy()用于避免编写字符串所具有的'\0' - 终结符。