这是我的代码:
int main(void)
{
int i;
Coords** latLng;
Quadrado* q1;
latLng[0] = AdicionaValores(latLng[0],-23.000490,-43.346687);
latLng[1] = AdicionaValores(latLng[1],-22.988243,-43.342224);
q1 = AdicionaValoresQuadrado(q1,-23.000490,-43.346687,-22.988243,-43.342224);
printf("# Connecting to database.\n");
for(i=0;i<2;i++)
{
if(clientInside(q1, latLng[i]))
printf("Dentro");
else
printf("Fora");
}
system("PAUSE");
}
这是 AdicionaValores 和 AdicionaValoresQuadrado:
Coords* AdicionaValores(Coords* v, double x, double y)
{
v = (Coords*) malloc(sizeof(Coords));
v->x = x;
v->y = y;
return v;
}
Quadrado* AdicionaValoresQuadrado(Quadrado* q, double x1, double y1, double x2, double y2)
{
q = (Quadrado*) malloc(sizeof(Quadrado));
q->x1 = x1;
q->x2 = x2;
q->y1 = y1;
q->y2 = y2;
return q;
}
它编译得很好,但有 2 个警告,告诉我 latLng 和 q1 未初始化!我应该怎么办 ?? malloc 他们在 main 上?帮助!
最佳答案
你可以声明:
Coords *latLng[2];
对于“latLng”没有被初始化的问题,或者在main
中malloc它。
对于其他人——函数根本没有理由将指针作为第一个参数,因为它没有对原始值做任何事情。也是如此:
Coords* AdicionaValores(double x, double y)
{
Coords* v = (Coords*) malloc(sizeof(Coords));
....
}
Quadrado* AdicionaValoresQuadrado(double x1, double y1, double x2, double y2)
{
Quadrado* q = (Quadrado*) malloc(sizeof(Quadrado));
....
}
然后不要在 main 中将第一个参数传递给它们。
关于c - 未初始化的局部变量!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090387/