
こんにちは。
授業で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);
などとりあえず試してはみたのですがどれも上手くいきません。
そもそも関数名の前に*(間接演算子?)があること自体がよくわかっていないです……
なので、返り値をどうすれば正しく機能してくれるのか教えていただけるとありがたいです。
※課題で指定されているので、関数頭部については変更しないとします。
No.2
- 回答日時:
その「bin_search」とやらは何をする関数なんでしょうか?
ことと次第によっては「bin_searchでkeyを返したい」が既にはずれである可能性もあります.
この回答への補足
元は、ライブラリ関数のbsearchを自作しようというものでした。
仮引数もいくつかありましたが、最終的にはkey(と同じ構造体の配列)を返せればよいので、このような形にしました。
No.1
- 回答日時:
>return (key);
>などとりあえず試してはみたのですがどれも上手くいきません。
とありますが「return (key);」の場合「const*」を「*」に変えたというワーニングがでるだけで正しく動くと思いますが?どういった風に上手く行かなかったのでしょうか?
keyには構造体のアドレスが入っています、関数の返却値も同一構造体のアドレスです。そのままkeyを返せば良いだけです。
この回答への補足
「return (key);」の場合、
return discards qualifiers from pointer target type
という警告文が表示されました。
これが、そのワーニングにあたるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
[C#] DeviceIoControlの変数の型
-
変換
-
init関数の意味
-
構造体の初期化のmemsetの第三引数
-
ポインタのミスでOS壊れるの...
-
プーさんのマウスポインタを教...
-
fopne で失敗する原因
-
構造体を値で渡す良い点はあり...
-
VC++6.0 MFC ダイアログバーを...
-
ハンドルはポインタか
-
LPSTR型の初期化について
-
newとdeleteでのアサート
-
戻り値で構造体を返すことは可...
-
C言語 配列の長さの上限
-
先頭アドレスとは何ですか?
-
C# Listを使わずに2次元配列の...
-
配列の要素数に変数を入れたい...
-
関数から配列を返すには?
-
newしないオブジェクトについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
戻り値で構造体を返すことは可...
-
ExcelVBAでのkernel32(64bit)
-
アプリを32bitから64bit移行
-
参照型で受け取った引数をポイ...
-
fopne で失敗する原因
-
PASCALとFARの意味
-
LPSTR型の初期化について
-
CWnd::EnableWindow()の扱い方
-
ポインタについて
-
プーさんのマウスポインタを教...
-
連結リスト 要素の入れ替え
-
ハンドルはポインタか
-
C++で関数ポインタから関数名を...
-
自作DLLの引数について、ポイン...
-
NULLポインタが0でない処理系と...
-
TCHAR文字列内の検索について
おすすめ情報