如何使用void通用指针用值填充数组?
发布时间:2020-12-16 09:51:29 所属栏目:百科 来源:网络整理
导读:给出以下方法 void fillArray(void *arr,int const numElements,void *val,int size) 如何在不知道数组类型的情况下用值(* val)填充数组(* arr)? numElements是数组中元素的数量,size是数组所属类型的字节大小. 解决方法 你可以使用memcpy.但是,为了提升内
给出以下方法
void fillArray(void *arr,int const numElements,void *val,int size) 如何在不知道数组类型的情况下用值(* val)填充数组(* arr)? numElements是数组中元素的数量,size是数组所属类型的字节大小. 解决方法
你可以使用memcpy.但是,为了提升内存位置,必须先将输入指针转换为char *.如果您有void *,则不会定义指针算术运算.
void fillArray(void *arr,int size) { char* cp = arr; int i = 0; for ( ; i < numElements; ++i,cp += size ) { memcpy(cp,val,size); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |