给定以下方法
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/