10/04/24 17:40:07
>>394
構造体や配列を返す関数を設計する場合の一般的な指針を求めています。
>C言語はプログラマ任せだからそんなこと言うようになったら、もうC言語に触れない方が幸せになれるよ
C言語はプログラマ任せだからこそ、プログラマーが、その時々に適切に、自動変数を渡すか、mallocで確保したメモリーを渡すかを選べるようにしておく方が幸せでしょう。
ですので、自動変数をマンセーしているわけではありませんが、自動変数を一切渡せないよりは、渡せた方がメリットがあると考えます。
つまり、自動変数を一切渡せなければ、自動変数を使いたいプログラマーには使えませんが
自動変数を一切渡せれば、自動変数を使いたいプログラマーにも、使いたくないプログラマーにも使えるからです。
これは十分メリットです。
ともかく、自動変数を渡せるかどうかは、今回の質問の本質ではなく、
構造体や配列を返す関数を設計する場合の一般的な指針として、
(1)関数内部でmallocするのと、(2)呼び出し側で確保したメモリー領域を受け取るのと、(3)それ以外の方法(があれば)と、で
どういう時にどうするのが良いのかという指針があれば知りたいと思っています。