如何使用通用void指针将值扫描到数组中?

时间:2014-04-06 23:10:30

标签: c arrays pointers generics scanf

给出方法标题

void scanArray(void *arr, int const numElements, int const sizeElement, char const *fmt)

其中*arr可以是任何类型的arraynumElements是数组中元素的数量,而sizeElement是该类型中值的大小数组,而fmt是一个字符串,例如%d%lf%f,您如何编写一个使用scanf将值插入到阵列

1 个答案:

答案 0 :(得分:1)

void scanArray(void *arr, int const numElements, int const sizeElement, char const *fmt){
  int i;
  unsigned char *tempArr = (unsigned char*) arr;
  for(i=0; i<numElements; i++, tempArr+=sizeElement) scanf(fmt, tempArr);
}

这似乎对我有用......