如何将void类型的元素转换为整数数组类型?

时间:2014-03-30 04:02:53

标签: c++ arrays void

//将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);

}

1 个答案:

答案 0 :(得分:0)

main()中,int num = elem(&a[0]);应为int *int_ptr = (int *)x;,在函数中放置int_ptr,然后使用elem

void *函数无法知道数组中有多少元素,因此您必须将其作为第二个参数传递,或使用其他内容而不是a[]

或者,您可以在'\0'的末尾添加一个标记值,类似于字符串使用{{1}}表示其结束的方式。