Cでのリンクリストとメモリの解放

マイクTT

単純なリンクリスト構造体を作成しようとしましたが、何らかの理由でLLのデータを解放することをテストしたときに、無効なポインターエラーが発生しました。誰かが理由を説明できますか?

#include <stdio.h>
#include <stdlib.h>

void add();

typedef struct node{
    char* data;
    struct node* next;
} node;

node** n;

int main(int argv, char** argc){

  n = (node**)malloc(sizeof(node*)*10);
  int i;
  for(i = 0; i < 10; i++){
    n[i] = NULL;
  }
  add();
  free(n[0]->data);

  return 0;
}
void add(){
  char* temp = (char*)malloc(sizeof(char)*4);
  temp = "Meh\0";
  n[0] = (node*)malloc(sizeof(node));
  n[0]->data = temp;

}
ジョスカー
char* temp = (char*)malloc(sizeof(char)*4);
temp = "Meh\0";

への割り当てtempは原因ですfreeこれにより、静的な文字列「Meh \ 0」を指すように設定されます。これはあなたのものではありませんこの場合、mallocは効果がありません。代わりに、静的データを指すようにすぐに置き換えます。によって割り当てられたメモリにデータをコピーする場合は、memcpyなどを使用しmallocます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リンクリストを解放するときのメモリリーク

分類Dev

Cのリンクリスト:2番目のノードを削除してメモリを解放する

分類Dev

NewStringUTF()とメモリの解放

分類Dev

カスタムリンクリストC ++でのメモリリーク

分類Dev

リンクリストのCメモリリーク

分類Dev

Cリンクリストのメモリリーク

分類Dev

Cリンクリストのメモリリーク

分類Dev

Cリンクリストのメモリリーク

分類Dev

リンクリストのメモリ

分類Dev

ポインタからポインタへのメモリの解放-Cデストラクタ

分類Dev

STLクラスを含むリンクリスト構造のためにメモリを解放する

分類Dev

C ++のクラスコンストラクタでのメモリリーク

分類Dev

C#メモリ割り当てとリンクリストの実装

分類Dev

C ++クラスのリンクリストのメモリリーク

分類Dev

エンドレス ストリーミング リクエストで responseText のメモリを解放する方法は?

分類Dev

基本的なトリムの例でCのメモリを解放する

分類Dev

Perlスクリプトでメモリを解放します

分類Dev

スクリプトの終了後にPHPにメモリを解放させる方法

分類Dev

3次元マトリックスのメモリを解放する

分類Dev

Pythonでのメモリの解放

分類Dev

リークしたメモリを別のプロセスから解放することは可能ですか?

分類Dev

PythonでのRのようなオブジェクトの削除とメモリの解放?

分類Dev

テンプレートでのC ++のメモリリーク

分類Dev

Cのループ内のメモリの割り当てと解放

分類Dev

C#:メモリ使用量の解放

分類Dev

Cのメモリを解放します

分類Dev

変数の再割り当てでのC ++ 11メモリの解放

分類Dev

ループ内のメモリの割り当てと解放(C + MPI)

分類Dev

メモリリークのあるリンクリスト

Related 関連記事

  1. 1

    リンクリストを解放するときのメモリリーク

  2. 2

    Cのリンクリスト:2番目のノードを削除してメモリを解放する

  3. 3

    NewStringUTF()とメモリの解放

  4. 4

    カスタムリンクリストC ++でのメモリリーク

  5. 5

    リンクリストのCメモリリーク

  6. 6

    Cリンクリストのメモリリーク

  7. 7

    Cリンクリストのメモリリーク

  8. 8

    Cリンクリストのメモリリーク

  9. 9

    リンクリストのメモリ

  10. 10

    ポインタからポインタへのメモリの解放-Cデストラクタ

  11. 11

    STLクラスを含むリンクリスト構造のためにメモリを解放する

  12. 12

    C ++のクラスコンストラクタでのメモリリーク

  13. 13

    C#メモリ割り当てとリンクリストの実装

  14. 14

    C ++クラスのリンクリストのメモリリーク

  15. 15

    エンドレス ストリーミング リクエストで responseText のメモリを解放する方法は?

  16. 16

    基本的なトリムの例でCのメモリを解放する

  17. 17

    Perlスクリプトでメモリを解放します

  18. 18

    スクリプトの終了後にPHPにメモリを解放させる方法

  19. 19

    3次元マトリックスのメモリを解放する

  20. 20

    Pythonでのメモリの解放

  21. 21

    リークしたメモリを別のプロセスから解放することは可能ですか?

  22. 22

    PythonでのRのようなオブジェクトの削除とメモリの解放?

  23. 23

    テンプレートでのC ++のメモリリーク

  24. 24

    Cのループ内のメモリの割り当てと解放

  25. 25

    C#:メモリ使用量の解放

  26. 26

    Cのメモリを解放します

  27. 27

    変数の再割り当てでのC ++ 11メモリの解放

  28. 28

    ループ内のメモリの割り当てと解放(C + MPI)

  29. 29

    メモリリークのあるリンクリスト

ホットタグ

アーカイブ