gpt4 book ai didi

c - 如何将表存储到空表中

转载 作者:行者123 更新时间:2023-11-30 14:59:23 25 4
gpt4 key购买 nike

我有以下代码:

void fill_buffer(void *buffer)
{
char cbuf[20]={1,2,3,4,5,6,7,8,9,9,9,9,9,9,9,11,12,13,14,15};
void* vbuf = (void*) cbuf;
buffer=vbuf;
}

我正在尝试填充主函数提供给我的缓冲区,但我不确定如何正确填充空表。在main函数中定义了buffer:

unsigned char buffer[20];

最佳答案

您需要复制数据,因为cbuffill_buffer()的本地数据,并且当函数返回时它将被释放,尝试这样做

void
fill_buffer(void *buffer, size_t bufsize)
{
static const unsigned char cbuf = {
1, 2, 3, 4, 5, 6, 7, 8,
9, 9, 9, 9, 9, 9, 9, 11,
12, 13, 14, 15
};
if (bufsize > sizeof(cbuf) / sizeof(*cbuf))
bufsize = sizeof(cbuf) / sizeof(*cbuf);
memcpy(buffer, cbuf, bufsize);
}

您应该确保目标缓冲区分配了足够的存储空间,在本例中为bufsize字节,但如果cbuf的类型' s 元素不同,您可能必须使用 sizeof(element_type)

此外,也许您可​​以返回实际复制的字节数。

关于c - 如何将表存储到空表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42794454/

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