gpt4 book ai didi

c++ - 结构 (C) 中的 malloc 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:12 24 4
gpt4 key购买 nike

我在C头文件中有如下代码

typedef struct {
kiss_fft_scalar r;
kiss_fft_scalar i;
} kiss_fft_cpx;

并且我在测试程序中实现了如下代码

kiss_fft_cpx *fin = malloc(4*sizeof(kiss_fft_cpx));

它给了我错误消息:“类型为 void 的值不能用于初始化类型为‘kiss_fft_ctx’的实体”。

我正在使用 Visual Studio C/C++ win32 控制台项目。

谁能告诉我如何在这里正确使用 malloc?谢谢!

最佳答案

你需要像这样转换返回类型:

kiss_fft_cpx *fin = (kiss_fft_cpx*) malloc(4*sizeof(kiss_fft_cpx));

但这意味着您正在将代码编译为 C++ 而不是 C,因为这是 C++ 错误而不是 C 错误。您可能需要检查文件扩展名和/或编译器设置。

如果您确实正在使用 C++,您应该至少使用 new 而不是 malloc:

kiss_fft_cpx *fin = new kiss_fft_cpx[4];

理想情况下,重新考虑您是否需要像这样动态创建对象 - 您可以使用 std::vector 或类似的代替吗?

关于c++ - 结构 (C) 中的 malloc 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046845/

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