2016-04-30 5 views
5

この質問はCとC++の両方に当てはまります。wmemcpyを持っている点は何ですか?

memcpyは、基本的に、元のメモリをアドレスから別のアドレスにコピーします。 私の質問は:wmemcpyのポイントは何ですか?

つまり、それはまだ連続したスペースであり、コピーは同じプロセスです。 wchar_tのものかどうかは関係ありませんか?

+0

これはCの関数です。 C++は、文字列型および関連する関数のような他の機能を提供します – Olaf

+1

"* wmemcpyを持つ点は何ですか?" – alk

答えて

4

の奇数をコピーすることはできません。

memcpyのコピーがdestにSRCからバイトを数えます。 wmemcpyコピーワイド数 文字(2バイト)

だから、違いは、あなたが言うとき、与えられた同じ引数でコピーされるバイト数である:使用の

memcpy(src,dest,2);//2 bytes will be copied 
wmemcpy(src,dest,2);//4 bytes,i.e 2*2 bytes will be copied 
この違い以外

、可能な利便wchar_tの配列をコピーする際wmemcpyを使用した場合、私は2つの間に違いがあるとは思わないとwmemcpyの存在が本当に必要です。

+1

これは、 'wmemcpy(src、dest、2);'が 'memcpy(src、dest、2 * sizeof(wchar_t));'と等価であることを意味します。それは単なる便利な機能ですか? – DeiDei

+0

@DeiDeiソースから宛先への生のバイトをコピーするので、それは信じています。 –

+0

さて、それは* does * *ですが、なぜ 'memcpy()'がすでに存在するときに 'wmemcpy()'を持つのが理にかなっているのかどうかは説明しません。 –

3

Interfacは、wchar_tのシンボル全体を確実にコピーします。あなたwmemcpyのMSDNのドキュメントからバイト

+2

この同じ引数を使用すると、他の標準タイプの関数が存在する必要があります。 – Olaf

+0

私はこれを買うかどうかはわかりませんが、少なくとも実際に起こった質問に対処しようとしています。 –