2015-11-05 72 views
0

我试图解决这个问题声明,但我收到此载体,在此范围内

错误:“向量”在此范围未声明。

这里是包含在头文件中的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; 
} 
+4

什么是'VECTOR'在'vector.lenght = 0的开头就声明一个变量;'? – Praetorian

+0

矢量的初始长度。 –

+0

您的两条线上还有一个错字(长度)。 – ForeverStudent

回答

2

我通过猜测:

vector.length=0 

您要初始化向量对象,它最初是空的;

的,你需要做的事:

Vector vector; 
vector.length=0; 
+0

谢谢!它正在工作。 –

+0

酷,因为你是新来的stackoverflow我会让你知道,你可以选择有用的答案作为最好的答案来表明问题已经解决 – ForeverStudent

2

其实vector真的不在此范围内声明...编译器现在载体是什么类型呢。

首先声明一个变量,然后使用它。

Vector vector; 
// your code 
1

从头文件包含的结构定义只是一个定义,即新的用户定义的数据类型。但是,要使用此数据类型,您需要创建/声明对象/变量。 正如前面的答案所建议的,在使用它之前,你需要声明一个这个结构/数据类型的变量(就像声明'int i'使用一个名为'i'的整数变量] - 在你的情况下将是'vector'。 在功能

Vector vector;