ポインタを使った構造体のプログラム
ポインタを使ってメンバに値を入力して表示するプログラムを作ったのですが、mainのstruct XYZ aというオブジェクトと*bというそれを指すポインタを使ってプログラムを表示するにはどうすればいいのでしょうか。
これがプログラムです。
#include <stdio.h>
struct XYZ {
int x;
long int y;
double z;
};
void set_xyz(struct XYZ *p,int x,long int y,double z) {
p->x=x;
p->y=y;
p->z=z;
}
//void set_xyz(struct XYZ *,int,long int,double);
int main() {
struct XYZ a = {12,999999,1.41421356},*b; //ここのポインタ変数bでエラーが表示されます。
set_xyz(b,a.x,a.y,a.z);
printf("a.x = %d\na.y = %d\na.z = %lf\n",b->x,b->y,b->z);
return 0;
}
エラーの内容は「初期化されていないローカル変数 'b' が使用されます」となっています。
初歩的な質問ですみません・・・。
お礼
while文はすべてfor文で書き直すことが出来ますので、 while文は「いらない」と言い切ることが可能です。 それでは、ダブルポインタはいらないと言い切ることは可能なのでしょうか? 「いらないけどあると便利」 なのか 「ダブルポインタでないと実現できないことがある」 なのか、どっちなのでしょうか?