私は、char配列へのポインタを受け取る関数を持っています。この関数はポインタをインクリメントして、配列全体に渡ってn個の長さに渡るようにします。最後に、関数は特定の状態を示すintを返します。問題は、同じchar配列へのポインタも受け取る他の関数があり、別の関数が途切れた場所を正確に横断する必要があることです。だから私はどうにかしてポインタのアドレスを保存する必要があります。関数はintを返すので、ポインタを返すことはできません。私はまだ何とかこれをプルすることができますか、またはいくつかのデータ型(intとポインタアドレス)を保存するために構造体を使用する必要があるかどうか疑問に思っています。他の関数からポインタアドレスを保存する
ここでは、そのような機能の例です:
int func(char *p) {
while(*p != 's')
p++;
return (*p == 's') ? 1 : -1
}
あなたがここにさまざまなオプションがあります。関数の署名は固定されていますか?それ以外の場合は、配列内の最後の位置、つまり各関数によって更新される別のポインタを含む各関数に2番目の引数を渡すことができます。 – wiredolphin
署名は固定されていますが、複数の引数をどのように返しますか? – Yos
この関数は1を返します。または返さない(おそらく、遅かれ早かれ未定義の動作になる)示されたコードは意味をなさない。 – alk