すべての関数の外部で定義されたbest_costという変数を持つプログラムがあります。次に、best_costの値を変更できるcompare_costsという関数があり、main()にbest_costが出力されます。現在のところ、1000000を出力します。これは、compare_costs関数のスコープがbest_costsの値を変更できないことを示しています。デバッガーを使用して、compare_costs内でbest_costが変更されていることを確認しました。これが私のコードの簡略版です:
int best_cost = 1000000;
int main {
compare_costs(new_cost);
printf("%d", best_cost);
}
void compare_costs(nc)
{
if(nc < best_cost) {
best_cost = nc;
}
}
ポインタを使用する必要がありますか?もしそうなら、それをポインタとして実装する方法の簡略版を教えていただけますか?
また、これは私が実際に使用しているものの非常に単純化されたコードであることに注意する必要があります。best_costをcompare_costs関数に渡して、best_costを返さないようにしたのには理由があります。
ここにコード全体があります:http://pastebin.com/khs2jcaF