【发布时间】:2014-11-20 03:10:53
【问题描述】:
我正在尝试编写一个通用函数来打印数组的元素。这就是我所拥有的:
void printArray(void * source, int numElements, int size, void (*printFunction)(void *)){
void *dest[numElements];
memcpy(dest, &source, (size * nElem));
int i;
for (i = 0; i < numElements; i++){
printFunction(dest[i]);
}
}
我传入了一个数组的地址、数组中的元素数量、数组中每个元素的大小,以及一个回调函数来处理数组类型的打印/格式化(打印函数效果很好,我已经测试过了)。
现在它正在打印第一个元素,然后我遇到了分段错误。我无法弄清楚问题所在 - 任何帮助将不胜感激。我是stackoverflow的新手,所以如果我能改进我的问题,请告诉我。
【问题讨论】:
-
dest是一个空指针数组。我不认为那是你想要的。请改用char dest[numElements*size]。 -
请说明你是如何调用函数的。
-
我不明白为什么你需要 memcpy anything 来完成这项任务。
标签: c arrays generics printing dynamic-arrays