gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:33:58 26 4
gpt4 key购买 nike

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

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

我希望的结果是一个指向二维数组的指针,该数组实际上类似于 int64_t[amountPossible][numSamples],但在 Xcode 中使用分析时我收到警告

Result of 'malloc' is converted to a pointer of type 'int64_t[numSamples]', which is incompatible with sizeof operand type 'int64_t[numSamples]'

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

最佳答案

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

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

这当然不是必需的!

将其作为错误报告给 Apple。

关于objective-c - 二维 C 数组作为 Objective C 参数,malloc 与 sizeof 操作数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com