我正在尝试解决这个问题,但我收到了这个
错误:未在此范围内声明'vector'。
以下是头文件中包含的struct
定义和代码。
struct Vector
{
unsigned int length;
int values[MAX_ARRAY_LENGTH];
};
Vector getSquares(double a, double b, double c)
{
vector.length=0;
float minim=min(a, b, c);
float maxim=max(a, b, c);
int i;
for(i=sqrt(minim); i<=maxim; i++)
{
if((i*i<=maxim)&&(i*i>=minim))
vector.values[vector.length]=i;
vector.length++;
}
return vector;
}
答案 0 :(得分:2)
我在猜测:
vector.length=0
您正在尝试初始化最初为空的矢量对象;
为此你需要做:
Vector vector;
vector.length=0;
答案 1 :(得分:2)
实际上vector
实际上并未在此范围内声明...编译器现在执行的是类型向量。
首先声明一个变量,然后使用它。
Vector vector;
// your code
答案 2 :(得分:1)
头文件中包含的结构定义只是一个定义,即新的用户定义数据类型。但是,要使用此数据类型,您需要创建/声明对象/变量。 如前面的答案所示,您需要声明此结构/数据类型的变量(就像在使用它之前声明&#39; int i&#39;使用名为&#39; i&#39;的整数变量) - 在你的情况将是&#39; vector&#39;。 只需在函数开头声明一个变量
Vector vector;