あなたのコードが間違っているようです。 test
のためのあなたの定義は
void test()
{
int use_power = 25;
struct character a;
a.power = &use_power;
}
として引数が含まれていませんが、あなたのプロトタイプが誤って入れて1つの引数
void test (use_power)
が含まれています。まず、プロトタイプ宣言の最後にセミコロン;
がなく、次にコードを見て、use_power
は変数でありデータ型ではないため、関数宣言でのみ存在することはできません。
引数の不一致エラーが発生します。あなたは絶対に間違っているmain()
printf("%d\n",*power);
でラインを使用している
。構造変数を持たない構造体のメンバーにはアクセスできません。
そして再び、あなたがそう正しくあなたの質問を入れていなかったとして、あなたがこの行の前に間違ったtest()
にお電話した後
を;
を言及していない、私はあなたが達成したいかを把握しなければなりません。構造体のポインタメンバの整数のアドレスを保持し、その値を出力したいと思います。
以下は、必要に応じて機能するコードスニペットです。
#include <stdio.h>
#include <stdlib.h>
struct character
{
int *power;
};
struct character a; //define a structure variable
void test();
int main()
{
test();
printf("%d\n",*(a.power)); // print the member of structure variable a
return 0;
}
void test()
{
int use_power = 25;
a.power = &use_power;
}
このコードは何ですか?それは完全に間違っています。多くの点で間違っています。ちょっとしたコードです。 –
"コンパイラは、テストが宣言されていない識別子であることを私に伝えます。" ...それはすべてあなたに伝えますか? – DigitalNinja
@DigitalNinja *最初の*エラーで停止する必要があります。すべてのプログラムはエラーです。 –