二维C数组作为Objective C参数,malloc与sizeof操作数不兼容



我需要创建一个指向二维C数组的指针,该数组将作为参数传递给稍后的函数。这就是我正在尝试的:

int64_t (*results)[numSamples] = malloc(sizeof(int64_t[numSamples])*amountPossible);

我希望的结果是一个指向二维数组的指针,这将有效地像int64_t[amountPossible][numSamples]一样,但在Xcode中使用分析,我得到警告

malloc的结果被转换为类型的指针'int64_t[numSamples]',它与sizeof操作数类型不兼容int64_t [numSamples] '

numSamples将总是相同的值,但amountPossible是可变的。有更好的方法吗?

这似乎是分析器中的一个错误。我发现的唯一不会绊倒分析器的排列是将语句分解:

size_t bytes = sizeof(int64_t[numSamples]) * amountPossible;
int64_t (*results)[numSamples] = malloc(bytes);

这当然不是必需的!

向苹果报告错误

最新更新