Trích:
Nguyên văn bởi npbaoduy
Em viết hàm như sau:
Code:
float Euclidean_distance(fractional x[13], fractional y[13])
{
float d;
unsigned int l;
d=0;
for (l=0;l<13;l++)
{
d+=(x[l]-y[l])*(x[l]-y[l]);
}
d=sqrt(d);
return d;
}
khi gọi hàm để sử dụng, ví dụ
d= Euclidean_distance(a[13],b[13]) chẳng hạn thì báo 2 warning là: "passing argument 1 of 'Euclidean_distance' makes pointer from integer without a cast" và "passing argument 2 of 'Euclidean_distance' makes pointer from integer without a cast". Chương trình vẫn biên dịch được, nhưng khi đến đoạn gọi hàm đó thì bị reset.
Ai có kinh nghiệm xin chỉ giúp em được ko?
|
Code:
float Euclidean_distance(fractional x[13], fractional y[13])
Mẫu hàm này có nghĩa là bạn phải truyền 2 đối số cho hàm là 2 con trỏ kiểu fractional, 2 con trỏ này trỏ tới mảng kiểu fractional kích thước 13 phần tử.
Code:
d= Euclidean_distance(a[13],b[13])
Khi gọi như trên là bạn đang truyền 2 đối số kiểu fractional.
Bạn phải gọi đúng như sau:
Code:
d= Euclidean_distance(a, b)