C++のstd::vectorやstd::stringは非常に便利ですが、C言語時代からある古いライブラリや関数(例えばprintfやmemcpy)と連携しようとすると、それらの関数はvectorを直接受け取ってはくれません。C言語の関数は、多くの場合、データの「生ポインタ」を要求します。