構造体とポインタ
演習問題を解いていて「構造体ポインタの指定の方法」で理解できない部分があったので、質問させていただきます。
その内容は、メイン関数で「scanf」で入力させた値を仮引数として計算する関数に送って計算し、メイン関数で表示処理を行うというものを、構造体とポインタを使って作るというものです。
とりあえずプログラムは以下のとおりになりました。
(字下げしたものが、下部のURL先にあります)
#include <stdio.h>
/***構造体***/
struct test{
int a;
int b;
}syoki[2] = {
{0,0},
{0,0}
};
/***値をプラスする関数***/
void kansu(struct test *no){
no->a++;
no->b++;
}
/***メイン関数***/
void main(){
int nomber;
//無限ループ
for(;;){
printf("値を追加する番号を指定してください\n");
printf("(入力する値は、0か1)→");
scanf("%d", &nomber);
//関数を呼び出す
kansu(&nomber);
//画面表示
printf("入力番号: %d\n",syoki);
printf("値1: %d\n",syoki->a);
printf("値2: %d\n",syoki->b);
}
}
VisualStudio.NETのエラー内容では
「'int *__w64 ' から 'test *' に変換できません」
と表記されています。おそらくメイン関数で指定した「nomber」がint型では駄目だというのはわかるのですが、それでは他に何を指定すればいいのかわからないのです。
もしよければ、アドバイスをいただけると嬉しいです。
よろしくお願いします。
お礼
>アロー演算子を使用する場合は、 >変数の前に*は必要ありません。 そうだったのですね; 無事解決できました。 ご回答、ありがとうございました~