理由はstrcpyの署名があるのはこれですか?strcpyがdestにconstポインタを使用しないのはなぜですか?これに代えて</p> <pre><code>char *strcpy(char *dest, const char *src); </code></pre> <p>:
char *strcpy(char *const dest, const char *src);
私の知る限り、関数は決してポインタを変更しません。
私は何のconstポインタを使用すべきか誤解していますか?私の考えでは、私が書いた関数が(reallocなどで)変更されないポインタを受け入れると、それをconstポインタとしてマークするので、呼び出し側はそのポインタがポインタ上に移動しないことが保証されます。 (他の構造体/ etcが、そのポインタの場所を参照して古いものになっている場合)
これは問題ありませんか、それとも意図しない結果になりますか?
の左側の
const
による制御でありますまたは宣言時に定義されます。 –この関数はポインタを変更することは決してありませんが、constがなくても 'strcpy'が' dest'を変更する方法はありません。 –