[解決済み] C言語で関数から複数の値を返すにはどうすればよいですか?
2023-01-08 04:37:26
質問
結果を生成する関数がある場合、その関数は
int
を生成する関数があり、その結果が
string
の両方を関数から返すにはどうしたらよいでしょうか?
私が知る限りでは、関数名の前にある型によって決定されるように、1つのものだけを返すことができます。
どのように解決するのですか?
あなたの
string
が何であるかは分かりませんが、私はそれが自分自身のメモリを管理していると仮定します。
解決策は2つありますね。
1:
struct
で、必要な型をすべて含んでいます。
struct Tuple {
int a;
string b;
};
struct Tuple getPair() {
Tuple r = { 1, getString() };
return r;
}
void foo() {
struct Tuple t = getPair();
}
2: ポインターを使用して値を渡す。
void getPair(int* a, string* b) {
// Check that these are not pointing to NULL
assert(a);
assert(b);
*a = 1;
*b = getString();
}
void foo() {
int a, b;
getPair(&a, &b);
}
どちらを使うかは、どの意味論がより好きかという個人の好みに大きく依存します。
関連
-
[解決済み] printf ファミリーを使用して、size_t 変数をポータブルに印刷するにはどうすればよいですか?
-
[解決済み] 型付けされた関数ポインタ?
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] CとC++でmain()は何を返すべきですか?
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み】C言語の関数ポインタはどのように機能するのですか?
-
[解決済み】このC関数は常にfalseを返すべきですが、そうではありません。
-
[解決済み】C言語で関数から `struct` を返します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[C] レポートエラー 代入の左オペランドとしてlvalueが必要
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
error: 'for' loop initial declaration is only allowed in C99 mode 原因と解決方法
-
initializer element is not constant "というエラーが表示されるのですが?
-
[解決済み] MIPSのネストされたForループと配列の使用
-
[解決済み] mallocで文字列を確保する
-
[解決済み] C言語で%sを正しく使う - 超基本レベル
-
[解決済み] C 言語で const char* を char* に変換するには?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] FortranはC言語よりも重い計算を最適化しやすいですか?