1

我有以下代码从ALAssetRepresentation.

ALAssetRepresentation *representation = ...;
size_t size = [representation size]; // 'size' returns a long long
uint8_t *bytes = malloc(size);

在 iOS 上为 32 位设备构建时,我收到以下警告。

在此处输入图像描述

盲目地将其投射long longsize_t作品中,但我不知道处理这种情况的“正确”方法是什么。很想知道如何最好地处理它。

4

1 回答 1

0

由于您要分配给 的类型size_t,因此将结果转换为size_t.

size_t size = (size_t)[representation size];

唯一的风险是这个representation size数字可能比size_t. 但如果发生这种情况,那么在 iOS 设备上运行时,该值太大而无法为其分配内存,因此这是一个比精度损失更大的问题。

于 2015-05-01T18:01:48.940 回答