ここで私はユーザ入力ポイント間の距離を計算するコードを持っており、calculateDistance
関数は2つのポインタを取る必要があります。 bash: line 12: 25372 Segmentation fault $file.o $args
ポインタと構造体を使用して2点間の距離を計算するC++、セグメンテーションフォルトの問題
コード:
struct Point{
float x;
float y;
};
float calculateDistance(struct Point *p1, struct Point *p2){
float *fx, *fy;
*fx = (*p1).x - (*p2).x;
*fy = (*p1).y - (*p2).y;
return sqrt((*fx * *fx) + (*fy * *fy));
}
int main()
{
struct Point *p1, *p2, q, w;
p1 = &q;
p2 = &w;
//float distance;
cout << "Enter coordinate for p1x: " << endl;
cin >> (*p1).x;
cout << "Enter coordinate for p1y: " << endl;
cin >> (*p1).y;
cout << "Enter coordinate for p2x: " << endl;
cin >> (*p2).x;
cout << "Enter coordinate for p2y: " << endl;
cin >> (*p2).y;
//distance = calculateDistance(*p1, *p2);
cout << "Distance between points: " << calculateDistance(p1, p2) << endl;
return 0;
}
というように変更してください。 –
この '* fx * * fx'は悪いです。本当に悪いです。かっこを追加すると役立ちます。 – Ripi2
これを練習に使っているのなら、私を無視してください。そうでない場合は、ポインタを使用せずにすべてを行うことができます。 – user4581301