次の2つのヘッダーを含むライブラリを使用するとします。
// types.h
typedef const char* Value;
typedef const char* Key;
// map.h
/** The given name and value will be copied into the map */
void add(struct Map* m, Key key, Value value);
コメントは、char*sのkey内容を意味しvalue、関数によってコピーされ、add返された後に使用するためのポインターを格納しないと想定しています。つまり、呼び出し元の関数は、を呼び出した直後に、これらのポインターを使用して、たとえばfreeingkeyや、など、必要なことをすべて実行できます。valueadd
呼び出し元の関数は、またはaddを変更しないことも期待できます。keyvalue
さて、そのコメントがなく、実装のソースも使用例も利用できなかった場合、経験豊富なCプログラマーはこれらの所有権の問題について何を想定しますか?