2014-03-30 154 views
0

//轉換空隙x的元素,整數數組如何將void類型的元素轉換爲整型數組類型?

INT ELEM(無效* X,INT大小){

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

} 
+3

你確定你需要'void *'嗎? elem是做什麼的? – chris

+0

elem元素的返回編號x –

+1

改爲使用模板。否則,使它成爲一個int *。 – Ben

回答

0

main()應該int num = elem(&a[0]);,並且在功能,放int *int_ptr = (int *)x;和然後與int_ptr一起工作。

elem函數無法知道數組中有多少個元素,因此您必須將其作爲第二個參數傳遞,或者使用其他值而不是void *

或者你可以把對a[]年底,類似於字符串如何使用'\0'以表明其末端標記值。

+0

是的,我確實需要一個數組大小? –

+0

是的,除非你跟蹤它,否則沒有合理的方法來獲得數組大小。 。也可以使用reinterpret_cast或static_cast。 – Ben

+0

也許即使我再次添加一個大小的參數而不是我如何將所有元素分配給temp int數組元素? –

相關問題