我有以下代码从ALAssetRepresentation
中提取数据。
ALAssetRepresentation *representation = ...;
size_t size = [representation size]; // 'size' returns a long long
uint8_t *bytes = malloc(size);
在iOS上构建32位设备时,我收到以下警告。
盲目地将long long
投射到size_t
作品,但我不知道"对"处理这种情况的方法是。很想知道如何最好地处理它。
答案 0 :(得分:0)
由于您要分配的size_t
类型,请将结果转换为size_t
。
size_t size = (size_t)[representation size];
唯一的风险是representation size
可能比size_t
中的数字大。但是如果发生这种情况,那么当在iOS设备上运行时,该值太大而无法为其分配内存,因此这比精度损失更大。