gpt4 book ai didi

c - 如何使用 void 通用指针用值填充数组?

转载 作者:太空狗 更新时间:2023-10-29 16:01:45 24 4
gpt4 key购买 nike

给定以下方法

void fillArray(void *arr, int const numElements, void *val, int size)

如何在不知道数组类型的情况下用值 (*val) 填充数组 (*arr)? numElements 是数组中元素的数量,size 是数组的任何类型的字节大小。

最佳答案

您可以为此使用memcpy。但是,为了推进内存位置,您必须先将输入指针转换为 char*。如果您有 void*,则指针算术运算未定义。

void fillArray(void *arr, int const numElements, void *val, int size)
{
char* cp = arr;
int i = 0;
for ( ; i < numElements; ++i, cp += size )
{
memcpy(cp, val, size);
}
}

关于c - 如何使用 void 通用指针用值填充数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872419/

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