質問: 【c言語】戻り値が構造体の関数 こんにちは。 授業でc原語を習っており、その課題で詰まった所についての質問です。 ※以下の関数については可能な限り簡略化しています。 typedef struct { char name[10]; int height; } person; person *bin_search( const person *key) { return (&key); } 以上のような構造体と関数があった場合、bin_searchでkeyを返したいのですが、 return (&key); では、コンパイルするとその行について return from incompatible pointer type warning: function returns address of local variable とエラーが出てしまいます。 return (key); return (*key); などとりあえず試してはみたのですがどれも上手くいきません。 そもそも関数名の前に*(間接演算子?)があること自体がよくわかっていないです...... なので、返り値をどうすれば正しく機能してくれるのか教えていただけるとありがたいです。 ※課題で指定されているので、関数頭部については変更しないとします。
回答: もちろん、そんな関数に意味があるとは私も思ってないです>#10 でも#2の補足を読む限りは質問者さんはそういう仕様を考えていらっしゃるようなので。 検索キーはnameだったりするんじゃないかなと。