gpt4 book ai didi

c - 当来自 C# 时,试图理解在 C 中添加到数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:04 25 4
gpt4 key购买 nike

我处于这样一种情况,我需要制作一个字节数组缓冲区,我可以在程序的整个生命周期中更新它。如果我有两个 C 数组

 unsigned char buffer[1400]; 
unsigned char data[64];

数据数组的值将在整个程序中不断变化,并通过各种循环(64 始终是最大长度),此时其值的范围将被添加到缓冲区数组。因此,例如,数据数组中有 64 个不同的十六进制值,我想将这些值的特定范围添加到缓冲区。这就是我卡住的地方,我的数据数组看起来像这样..

data[64] = {0x00, 0xeb, 0xff, etc...}

在 C# 中,我会执行以下操作来选择我想要的范围并将其添加到缓冲区

buffer.AddRange(data.Skip(6).Take(30));

但我完全不知道如何在 C 中执行此操作。我对这门语言真的很陌生,所以我看到有人提到你会使用 realloc 但我仍在努力思考它是如何工作的.我将不胜感激一些指导,希望我提供了足够的信息。谢谢!

编辑注意:1400 的缓冲区数组大小只是实际的最大值,从技术上讲,它可以是介于两者之间的任何动态范围。即使它永远不会达到那么多,也会设置它的最大值会导致任何问题吗?

最佳答案

首先,您需要跟踪您的缓冲区已经满了多少:

size_t buffer_length = 0;

然后你就可以使用memcpy来复制你的数据了:

memcpy(buffer + buffer_length, data + offset, bytes_to_copy);

关于c - 当来自 C# 时,试图理解在 C 中添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com