[解決済み】 munmap_chunk(): 無効なポインタ
2022-01-10 10:28:05
質問
コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
char * first()
{
char * word = malloc(sizeof(char) * 10);
word[0] = 'a';
word[1] = 'b';
word[2] = '\0';
return word;
}
char * second ()
{
char * word = malloc(sizeof(char) * 10);
word = "ab";
return word;
}
int main ()
{
char * out = first();
printf("%s", out);
free(out);
out = second();
printf("%s", out);
free(out);
return 0;
}
を実行すると
first()
を実行しても大丈夫ですが
second()
(まさに
free(out)
) 、私はエラーを取得します。
Error in `./a.out': munmap_chunk(): invalid pointer: 0x0000000000400714 *** ababAborted (core dumped)
最初の関数は正しいのに、2番目の関数は正しくないというのは理解できない。
どのように解決するのですか?
関数内で
second()
の場合、代入は
word = "ab";
に新しいポインタを代入します。
word
で取得したポインタを上書きします。
malloc()
. を呼び出すと
free()
へのポインタを渡したため、プログラムがクラッシュします。
free()
によって取得されていない
malloc()
.
文字列リテラルを代入しても、思ったようにその内容をコピーする効果はありません。文字列リテラルの内容をコピーするには、次のようにします。
strcpy()
:
strcpy(word, "ab");
関連
-
batスクリプトからログを出力する方法
-
非常に詳細な2つのシェルコードの例
-
複数のサイトをまとめてよく見たい オススメ度
-
InstallShield で IIS がインストールされているかどうかを検出するスクリプト
-
[解決済み】ValueError: shape mismatch: オブジェクトを1つの形状にブロードキャストできない
-
[解決済み】主成分分析:colMeans(x, na.rm = TRUE)のエラー:'x'は数値でなければなりません。
-
[解決済み】 c++ "Incomplete type not allowed" クラス参照情報へのアクセスエラー (前方宣言による円環状依存性)
-
[解決済み】必要な形式パラメータに対応する引数が与えられない - .NETエラー
-
[解決済み】マージが終了していない(MERGE_HEADが存在する)。
-
[解決済み] ポインタからキャストを使わずに整数を返す [-Wint-conversion] 戻り値の候補を作る
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スクリプトとバッチ処理がひとつに
-
[解決済み】R on MacOS Error: vector memory exhausted (limit reached?)
-
[解決済み】警告メッセージ。In `...` : invalid factor level, NA generated 警告メッセージ:...`は無効な因子レベルです。
-
[解決済み】「g++」が内部コマンド、外部コマンド、操作可能なプログラム、バッチファイルとして認識されない。
-
[解決済み] libc++abi.dylib: NSException 型のキャッチされない例外で終了する (lldb)
-
[解決済み】lm.fit(x,y,offset = offset, singular.ok,...) boxcox式で0非NAケースでエラーになる。
-
[解決済み】Jupyter Notebookが保存されない:postに'_xsrf'引数がない
-
[解決済み】rmarkdownエラー "長さ0の変数名を使おうとした"
-
[解決済み】Looper.prepare()を呼び出していないスレッド内でハンドラを作成できない。)
-
[解決済み】AdMobにアプリケーションを入れたら「ライブラリが見つからない」というエラーが出た