[解決済み] memcpy()とmemmove()をバイト数をゼロにして呼び出すことは可能ですか?
2022-05-14 08:17:09
質問
実際に移動/コピーするものがない場合、次のような処理が必要ですか?
memmove()
/
memcpy()
エッジケースとして
int numberOfBytes = ...
if( numberOfBytes != 0 ) {
memmove( dest, source, numberOfBytes );
}
をチェックせずに関数を呼び出せばよいのでしょうか?
int numberOfBytes = ...
memmove( dest, source, numberOfBytes );
前者のスニペットのチェックは必要でしょうか?
どのように解決するのですか?
C99規格(7.21.1/2)より。
として宣言された引数が
size_t n
は配列の長さを指定します。 関数の配列の長さを指定します。n
はその関数の呼び出し時に値ゼロを持つことができます。このサブセクションの特定の関数の説明で明示的に記述されていない限り このサブクラスにおける特定の関数の説明で他に明示されていない限り,そのような呼び出しにおけるポインタ引数 は,7.1.4で記述するように,依然として有効な値をもたなければならない。このような呼び出しにおいて このような呼び出しにおいて,文字の位置を特定する関数は発生を発見できず,2つの文字列を比較する関数はゼロを返し 文字列を比較する関数はゼロを返し,文字をコピーする関数はゼロをコピーする。 文字をコピーする関数はゼロをコピーします。
つまり、答えはノーです。チェックは必要ありません(またはイエスです。ゼロを渡すことができます)。
関連
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] noexceptを本当に使うべきはいつですか?
-
[解決済み] C++の文字列==とcompare()の違い?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] memmoveとmemcpyの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】C++の余分な資格エラー
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】VC++の致命的なエラーLNK1168:書き込みのためにfilename.exeを開くことができません。
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】変数やフィールドがvoid宣言されている