2014-12-06 40 views
0

我试图将ASCII转换为十六进制。这是我的功能。ascii到十六进制函数编译xcode但不是他的

NSString *asciiToHex(NSString *input) { 
    NSUInteger inputLength = [input length]; 
    unichar *chars = malloc(inputLength * sizeof(unichar)); 
    [input getCharacters:chars]; 
    NSMutableString *hexString = [[NSMutableString alloc] init]; 
    for (NSUInteger i = 0; i < inputLength; i++) { 
     [hexString appendFormat:@"%02x", chars[i]]; 
    } 
    return hexString; 
} 

它工作在Xcode的,但如果我尝试编译它在狄奥项目中,我得到这个错误

error: cannot initialize a variable of type 'UInt8 *' 
     (aka 'unsigned char *') with an rvalue of type 'void *' 
    UInt8 *outBytes = malloc(sizeof(UInt8) * ((inLength/2) + 1)); 
     ^

我怎样才能获得THEOS编译它还是我如何重写功能?

回答

0

malloc返回类型为void*的指针。 Typecast对unichar的rsvalue如下

unichar *chars = (unichar*)malloc(inputLength * sizeof(unichar));