二进制+的操作数无效

时间:2015-02-10 19:25:22

标签: c++ c binary

我有一些代码:

u=(float *)calloc(n, sizeof(float));

for(i=1; i<n; i++)
{
*(u+n)=dr*(*(u+n-1))-(dr*20)+(*(u+n-2));
*(u+i)=k1*(pow(*(u+i+1),2)+pow(*(u+i-1),2)-2*(*(u+i+1))*(*(u+i-1)))+(k2*(*(u+i))+k3)*(*(u+i+1)-2*(*(u+i))+(*(u+i-1)))+(k2*(*(u+i))+(k3/i)-k4)*(*(u+i+1)-(*(u+i-1)));

}

我在第三行有这个错误:(二进制+的操作数无效) 我该怎么办?

2 个答案:

答案 0 :(得分:0)

首先 - 你必须提供更多细节!例如 - 哪条线是第三条线?如何定义?如何定义博士?

反正:

*(u+n)=dr*(*(u+n-1))-(dr*20)+(*(u+n-2));

肯定是一件坏事。

*(u+n)

超出了分配的内存。

但这并不能解释编译错误。

答案 1 :(得分:0)

如果我将ni声明为浮动,我会收到同样的错误。

http://ideone.com/h75svr

所以问题的答案是:

要添加到指针的每个变量都必须是整数类型。

int i;
int n;

在你的情况下。所有其他变量可以是float