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

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


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


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


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

最佳答案

这似乎是分析仪中的错误。我发现的不会使分析仪跳闸的唯一排列是破坏语句:

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


当然,这不是必需的!

向Apple报告此错误。

10-08 20:02