2012-05-28 40 views
0

我有一個C++類,我想在我的Objective-C項目中使用它。沒有任何#包括C++頭,當我從「.M」到「.mm」重命名我的OBJ-C文件,從而切換編譯器,編譯器產生的malloc錯誤一大堆:在xcode中切換到objective-C++時出現malloc錯誤

double * pointValues = malloc(sizeof(double *)*numOfPts); 

error: invalid conversion from 'void*' to 'double*' 

突然所有含有malloc的行都會失效。 當我使用Obj-C++編譯器時,是否需要輸入「malloc」,或者這是否是其他問題的表現?

回答

3

在C++中,沒有從void*到其他指針類型的隱式轉換,因此您必須明確地進行轉換。 不僅用於Objective-C++編譯器。

+0

謝謝,我不知道,因爲我到目前爲止一直在C++中使用「新」和「刪除」方法。 – user1183950

0

C++有很強的輸入。直接轉換是不允許在C++中:

double * pointValues = (double*) malloc(sizeof(double *)*numOfPts); 
//      | 
//     explicit cast 
相關問題