//将void x的元素转换为整数数组
int elem(void * x,int size){
int* temp = new temp[size];
for(int i = 0;i < size ; i++){
temp[i] = (int*)x[i]; // <--- this is what i want
// assign all element of x to temp
}
}
int main(){
int a[] = {1,2,3,4,5,6,7,8,9,10};
int num = elem(&a,10);
}
答案 0 :(得分:0)
在main()
中,int num = elem(&a[0]);
应为int *int_ptr = (int *)x;
,在函数中放置int_ptr
,然后使用elem
。
void *
函数无法知道数组中有多少元素,因此您必须将其作为第二个参数传递,或使用其他内容而不是a[]
。
或者,您可以在'\0'
的末尾添加一个标记值,类似于字符串使用{{1}}表示其结束的方式。