..\my\FFT\fft_calculate.c(17): error: #142: expression must have pointer-to-object type
时间: 2023-12-05 21:03:03 浏览: 161
根据错误信息,我注意到错误出现在第17行。这个错误是由于你在调用`cr4_fft_256_stm32`函数时,传递了一个无效的参数。
根据你的代码,`OutBufArray0`和`InBufArray0`都是数组,它们的类型是`long`。然而,`cr4_fft_256_stm32`函数可能需要接受指向这些数组的指针作为参数,而不是数组本身。
所以,你需要将数组名作为参数传递给函数时,使用数组名本身会被解释为指向第一个元素的指针。因此,你可以将调用代码修改为如下所示:
```c
cr4_fft_256_stm32(OutBufArray0, &InBufArray0[0], NPT);
```
同样地,如果你想调用`cr4_fft_256_stm32`函数来处理`InBufArray1`,你可以使用类似的方式传递参数:
```c
cr4_fft_256_stm32(OutBufArray1, &InBufArray1[0], NPT);
```
这样修改后,应该能够解决这个问题。如果还有其他问题,请提供更多信息以便我能够帮助你。
相关问题
..\my\FFT\fft_calculate.c(16): error: #142: expression must have pointer-to-object type
这个错误在代码第16行报告了一个问题,错误的提示是“expression must have pointer-to-object type”,意思是表达式必须具有指向对象的指针类型。
根据你提供的代码,问题出在以下两行:
```c
cr4_fft_256_stm32(OutBufArray, InBufArray, NPT);
```
这里的`OutBufArray`和`InBufArray`是数组名,它们并不是指针类型。而`cr4_fft_256_stm32`函数可能期望接收指向数组的指针作为参数。
为了解决这个问题,你可以将数组名作为参数传递给函数时,取地址操作符`&`来获取数组的指针,修改代码如下:
```c
cr4_fft_256_stm32(OutBufArray0, InBufArray0, NPT);
```
请注意,我将`OutBufArray`和`InBufArray`分别修改为`OutBufArray0`和`InBufArray0`,以匹配你在代码开头定义的数组名称。确保在其他地方也相应地修改了数组名称。
这样修改后,应该能够解决这个编译错误。如果还有其他问题,请提供更多的信息以便我能够帮助你。
阅读全文