メモリに大きな文字列があり、そのスライスを関数で提供したい状況があります (たとえば、30 から始まる 14 文字の実行を与えてください)。これを機能させるには、コンシューマーにバッファーにダブル ポインターを使用させる必要がありました。
void foo(char** bar)
{
char* tmp = "nope";
*bar = &tmp[1];
}
int main (int argc, char const *argv[])
{
char* baz = "yep";
foo(&baz);
printf("%s", baz);
return 0;
}
しかし、pread や strcpy などのさまざまなライブラリ関数を見ると、それらは 1 つのポインター レベルで文字列バッファーを受け入れます。
彼らはどのようにそれをしているのですか?同じように「反対側」の値を変更するには、ダブルポインターも必要なようです。