C中晶圆厂的一些错误
Some errors with fabs in C
我正在c++中编写以下函数:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <mex.h>
#include <math.h>
#include "matrix.h"
void funnc(double *f, double *x, long n, long b, double lambda, double theta)
{
long i;
long j;
double u,v,y,z,w;
y = theta*lambda;
w = lambda*lambda;
z = 0.5*(theta+1.0)*w;
u = 0.0;
for(i=0;i<n;i++)
{
for(j=0;j<b;j++)
v = fabs(x[i][j]);
if (v <= lambda)
u += lambda*v;
else if (v > y)
u += z;
else
u += 0.5*(v*(2*y - v) - w)/(theta-1.0);
}
*f = u;
return;
}
etc.
事实上,函数的编译由于以下错误而失败:
error C2109: subscript requires array or pointer type
error C2168: 'fabs' : too few actual parameters for intrinsic function
有人能纠正我的代码吗??我对C++了解不多。
任何帮助都将不胜感激!
您只提供了一个指向函数的指针。据我所知,你想要一张2D表格。您应该给出双**x而不是双**x。
您的x
属于double*
类型,因此它是一个1D数组:您不能将其称为x[i][j]
。
如果您已经发送了2D数组的第一个元素的地址,那么您必须进行正确的指针数学运算:
不是:
x[i][j]
因为它是一个单独的指针。假设b
是2D阵列的宽度,您可以这样做:
v = fabs(*(x+i*b+j));
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- 晶圆厂(-1.#IND000000000000)返回-1.#IND000000000000
- 更换C 中的晶圆厂
- 内存分配错误/圆检测/openCV / C ++
- 有形状和圆形类,以及点类.创建将点类作为一个参数的圆时出现分割错误
- 减法和晶圆厂工作,然后在程序运行时不工作
- C中晶圆厂的一些错误