すべての値を変更せずに構造体型を返すようにいくつかの関数を変更しようとしています。具体的には、さまざまな方法で画像のサイズを変更し、新しい画像のサイズを返すようにしています。netpbm画像ファイルのヘッダー情報(幅、高さ、最大色値、および形式を示す1〜6の数字)を含む「picspec」という構造体があります。
一部の画像編集では、これら4つすべて(要素?構造体の一部)を変更する必要がある場合がありますが、多くはそれらの一部にのみ影響するため、そのような場合は元の値をそのままにしておくことをお勧めします。私の最初の本能は、関数を次のように終了することでした。
picspec newinfo = {newx, newy, void, void};
return newinfo;
...そして、コンパイラエラーが発生しても特に驚きませんでした。
注:古い「picspec」を引数として渡すことでこの特定の問題を簡単に解決できることを理解していますが、「現在の値を保持」コマンドは他の状況で非常に役立つ可能性があります。私の(現在は非常に限られた)ポインターの知識は、それが可能であると私に思わせますが、私はそれを探すことにあまり成功していません。(「独学へのポインタ」はリンクリストについてすべて教えてくれましたが、それは私が考えていたものではありませんでした。)
「現在の価値を維持する」ためのメカニズム、または同じ目標を達成するための同様に簡潔な方法はありますか?そうでない場合、最も実用的な代替手段は何ですか?