【发布时间】:2016-03-09 14:48:09
【问题描述】:
我的代码不断崩溃(这是一个旧的 iOS 应用,没有 ARC)。这是有问题的代码:
- (NSString *) dataToHex:(NSData *)data {
NSUInteger len2 = [data length] * 2;
unsigned char* chars = (unsigned char*) [data bytes];
char finalChar[len2 + 1];
for(int i = 0; i < len2; i++) {
sprintf(finalChar + (i * 2), "%02x", chars[i]);
}
finalChar[len2] = '\0';
NSString *hexString = [NSString stringWithFormat:@"%s", finalChar];
return hexString;
}
崩溃发生在sprintf() 的行中。有任何想法吗?我尝试过使用更大的缓冲区大小,但不起作用。
【问题讨论】:
-
@SouravGhosh 是的,它充满了作为参数传递的 NSData 的字节,对吧?
标签: ios objective-c arrays segmentation-fault printf