所以我一直收到下面的编译错误;
src/c/testHO.c: In function ‘int main(int, char**)’:
src/c/testHO.c:79:56: error: invalid operands of types ‘int*’ and ‘long unsigned int’ to binary ‘operator*’
src/c/testHO.c:145:26: error: cannot convert ‘int*’ to ‘float*’ for argument ‘27’ to ‘void hfmmcalc_(float*, float*, float*, float*, int*, int*, float*, float*, int*, double*, int*, int*, float*, float*, float*, float*, int*, int*, float*, float*, int*, int*, float*, int*, int*, float*, float*, float*, int*, int*)’
此错误与代码的以下部分有关
int wkspSize = 32*(npart+NGRID)+1000;
float* WKSP = (float*) malloc(wkspSize*sizeof(float));
int hfmmInfoSize = 4;
int* hfmmInfo = (int*) malloc(&hfmmInfoSize*sizeof(int));
我正在努力找出这个错误的确切位置。我已经尝试更改了27个参数(hffmInfoSize),以便将其指定为浮点型,并尝试将最后一行更改为浮点型。我是C语言的新手,所以这可能是一个简单的修复方法
发布于 2014-07-07 23:15:50
你似乎有一个迷路的&
在里面--改变:
int* hfmmInfo = (int*) malloc(&hfmmInfoSize*sizeof(int));
至:
int* hfmmInfo = malloc(hfmmInfoSize*sizeof(int));
还要注意对malloc
调用的结果中redundant (and potentially dangerous) cast的删除。
https://stackoverflow.com/questions/24613953
复制相似问题