c++ - Visual C++::'malloc' 中的奇怪错误:函数不带 1 个参数

标签 c++ c visual-c++

Error 38 error C2660: 'malloc' : function does not take 1 arguments C:\VolumeRenderer\render.cpp 296 1 VolumeRenderer
Error 39 error C2660: 'malloc' : function does not take 1 arguments C:\VolumeRenderer\render.cpp 412 1 VolumeRenderer
Error 40 error C2660: 'malloc' : function does not take 1 arguments C:\VolumeRenderer\render.cpp 414 1 VolumeRenderer
Error 41 error C2660: 'read_den' : function does not take 4 arguments C:\VolumeRenderer\render.cpp 506 1 VolumeRenderer

我所有的malloc部分都是这样的:

/* allocate space for the raw data */
density_size = BRAIN_XLEN * BRAIN_YLEN * BRAIN_ZLEN;
density = (unsigned char*)malloc(density_size);
if (density == NULL) {
  fprintf(stderr, "out of memory\n");
  exit(1);
}

关于 read_den(最后一个错误)。 read_den 有 4 个参数。您可以在此处查看函数原型(prototype)及其相应的调用:

  unsigned char *read_den(char *filename,int *xptr,int *yptr,int *zptr)// function prototype
  src_volume = read_den(src_file, &src_xlen, &src_ylen, &src_zlen);// function call

是我的代码还是荒谬的错误。如何整改?

编辑: 有人可以评论最后一个错误,因为。我无法证明这一点。

EDIT2: 当我将文件扩展名从 *.cpp 更改为 *.c 时,所有错误都消失了。所以,我认为它与 C 和 C++ 有关。

最佳答案

大胆猜测:您使用了 malloc在其他地方不正确,传递两个参数而不是一个。这将导致隐式声明。

尝试在启用所有警告的情况下进行编译,看看是否出现任何问题。


更新:你也可以输入 #include <stlib.h>作为源文件中的第一行,这样任何潜在的隐式声明都将被标记为错误。

关于c++ - Visual C++::'malloc' 中的奇怪错误:函数不带 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743892/

相关文章:

c++ - 如何使 C++ 程序跨编译器工作

c++ - 将 unicode 字符串与 C++ 符号进行比较?

c++ - 使用 Mysql 连接器构建应用程序时出错

c++ - 为什么在 C++ 中键入 void main() 是不好的

c - 不同对齐的指针UB之间是memcpy吗?

c - 获取数组长度的奇怪结果

c - 16 位微 Controller 上的正弦函数

c++ - Visual C++ 编译器如何表示短类型?

c++ - 在 std::map 中存储指向派生类实例的指针

winapi - Color Converter DSP 的 IMFTransform 接口(interface)在 SetInputType/SetOutputType 上给出 E_INVALIDARG