一个有点奇怪的一个对我来说,所以我希望你偷窥可以帮助我一点。我基本上有一个目标填充数组将由16字节。此外,我甚至有这个数组的结构,我将不得不创建x1c 0d1x
我遇到的问题是,除了这个列表中的前两个基本值,其他所有的值都是通过将它们作为参数传递到一个函数中来填充的,我没有访问权限。这不是我的项目部分所做的,因此我唯一知道的关于这个函数的信息是它的接口,基本上是ReturnType GetValues(uint8* index, uint8* ID, uint8* buffer)
。
另一个问题是我如何在这个16个元素的数组中放置另一个数组。注意,这应该是可伸缩的,所以我不能手动将缓冲区数组的所有10个元素放入更大的数组中,因为将来我可能不得不对100字节的数组做同样的事情。
我的一个基本实现是这样的
uint8 index[2];
uint8 ID[2];
uint8 buffer[10];
GetValues(index, ID, buffer);
uint8 FinalArray[] = {0x01, 0x10, buffer, index, ID};
字符串
当然,所有这些都有问题,首先,缓冲区,ID和索引在GetValues函数中传递,它们将被视为指针,然后我只是随意地将它们扔到FinalArray中。不幸的是,我是C的新手,因此即使我知道基本算法,指针和内存管理方面的语言仍然逃避我有时。2我感谢任何帮助你们可以提供。3谢谢!
1条答案
按热度按时间2guxujil1#
你可以将数组中给定偏移量的指针直接传递给函数。
字符串
假设和
uint8
是一个 * 字符类型 ,并且ID
和index
值的字节顺序是正确的(否则您需要类似于htons
/ntohs
的功能)。( 也许一些宏来代替这些神奇的数字。*)