[解決済み] strcpy'で作成した文字列は解放する必要がありますか?
2022-02-07 03:48:58
質問
で作成された文字列は、' strcpy は解放する必要があるのでしょうか?また、どのように解放するのですか?
編集部:宛先はこのように割り当てられています。
char* buffer[LEN];
解決方法は?
strcpy
自体は宛先の文字列のためにメモリを割り当てないので、解放する必要はありません。
もちろん、もし何か
さもなくば
がそのためにメモリを割り当てていた場合、そのメモリは最終的に解放されるべきですが、そのためには
何も
とは関係ありません。
strcpy
.
あなたの定義が文字の配列であるため、その前の文はそうであるように思われます。 ポインター は、文字の配列ではありません。
char* buffer[LEN];
となります。 ほとんど は確実に行われます。
buffer[n] = malloc (length);
mallocされたメモリに対する責任という観点から考え始めるとよいでしょう。つまり、mallocされたメモリブロックを渡すことは、ある時点でそれを解放する責任を渡すことを含むかもしれないのです。
メモリの管理責任がメモリそのものに付随しているのかどうかを把握すればよいのです(自分のコードであれば判断すればよい)。例えば
strcpy
の場合、転送先に既にマロクされたブロックを渡したとしても、その責任は
ない
を渡すので、自分でそのメモリを解放する必要があります。このため、malloc'されたバッファやmalloc'されていないバッファを気にすることなく、簡単に渡すことができます。
を思い浮かべるかもしれません。
strdup
これは基本的に、最初にメモリを確保して文字列のコピーを作成するものです。そこから返された文字列は、間違いなく解放される必要があります。
関連
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 難読化Cコードコンテスト2006。sykes2.cの解説をお願いします。
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] プログラム終了前にmallocの後にfreeをしないと本当に何が起こるのか?
-
[解決済み] フリーは、どのように無料化を知っているのですか?
-
[解決済み] なぜalloca()の使用はグッドプラクティスとみなされないのでしょうか?
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み] Connect: ソケット以外でのソケット操作
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】「構造体でもユニオンでもないものにメンバー'*******'を要求する」とはどういう意味ですか?
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】C言語で多重定義を防ぐには?
-
[解決済み】C言語のフォーマット文字列でデータ引数が使用されない [重複]。
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み】 strdup() - Cでは何をするのですか?