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/