配列の最小値と最大値を計算する関数を持っていれば、関数が実行されている間に編集できるように、関数のパラメータに最小値と最大値を入れるのは悪い習慣です。Cの練習で複数の値を返す目的で複数の関数パラメータを使用していますか?
だから私はvoid minmax(array, int min, int max)
最小と最大の変数はnullとしてで送信されると、関数が実行時に変更を取得しています。これは大丈夫でしょうかmallocを使って配列を取得し、代わりにポインタを返すべきですか?
配列の最小値と最大値を計算する関数を持っていれば、関数が実行されている間に編集できるように、関数のパラメータに最小値と最大値を入れるのは悪い習慣です。Cの練習で複数の値を返す目的で複数の関数パラメータを使用していますか?
だから私はvoid minmax(array, int min, int max)
最小と最大の変数はnullとしてで送信されると、関数が実行時に変更を取得しています。これは大丈夫でしょうかmallocを使って配列を取得し、代わりにポインタを返すべきですか?
Q:いいえ、全然。私は、配列の最小値と最大値を計算する関数を持っている場合は、機能paramiters
Aで最小値と最大値を含めるように悪い習慣でしょう。それは完全に合理的なことです。
Q: "だから私は... void minmax(array, int min, int max)
を持っているでしょう"
A:いいえ、ええと。それは "min"と "max"を呼び出し側に返すことはありません。例えば
void minman(int * array, int * min, int * max);
「
:代わりに、あなたのようなものが必要
int myarray[] = {1, 2, 3};
int min, max;
minman(myarray, &min, &max);
...
ポインタがmin
とmax
であることを除いて、それは全く問題ありません。あなたが持っているのと同じように普通のものである場合は、int
のように、発信者はあなたが行った変更を見ることはありません。
パラメータを介して値を返す関数に問題はありません。あなたが書いたコードを除いて動作しません - このようにそれを変更します。
void minmax(int *array, int *min, int *max)
もreturning multiple values from a functionを参照してください。
「私は思っていません...」のような免責事項から回答が始まる場合、その質問は、あまりにも批判的な話題ではありません。 – Olaf
質問がうまくいっている間に、私の答えは「私はそうは思わない」と始まってはいけません。 –
@Olaf質問を削除するために私の答えを編集しました。 –
https://stackoverflow.com/questions/3829167/returning-multiple-values-from-a-function –
'minmax()'は配列の大きさをどのように知っていますか?おそらく、配列のエントリ数を指定する別の引数があるはずです。 –