アプリ版:「スタンプのみでお礼する」機能のリリースについて

int median_value(unsigned char data3[9])
{
int i, j, buf;

for (j = 0; j < 8; j++) {
for (i = 0; i < 8; i++) {
if (data3[i+1] < data3[i]) {
buf = data3[i+1];
data3[i+1] = data3[i];
data3[i] = buf;
}
}
}
return data3[4];
}

この関数を他の関数内で

data_B[i][j] = median_value(data3);

といった形で呼び出そうとすると「識別子が見つかりません」とエラー表示が出てしまいます。何が違うのでしょうか?教えてください。なお、ほかのソース(void型)は長いので省きました。

A 回答 (3件)

どうせ書くなら「正確なエラーメッセージ」を書いてください.


いまどきの普通のコンパイラなら「どのファイルの何行目でどのような識別子が見つからないのか」というレベルのメッセージを出すはずです. そのファイルの当該行より前に指摘された識別子を宣言するものがあるかどうかを調べてください.
ところで, この関数って入力を破壊するんだけど, それでいいの?
    • good
    • 1

>「識別子が見つかりません」とエラー表示が出てしまいます


なんという識別子が見つからないといわれているのですか?
コンパイラはきちんと指摘してくれるはずですが。。。

>なお、ほかのソース(void型)は長いので省きました。
提示のソースでは、原因を指摘するのは困難です。せめて、
呼び出し元のコードは詳細に書く必要があると思います。

とりあえず、提示されたコードから、呼び出し元に
「data_B」、「data3」を定義しているかを
確認してはどうでしょうか?
    • good
    • 0

すみませんが、「長いので省きました」という部分を提示してください。


問題はそこにあります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!