構造体内の配列に動的に割り当てられたメモリを解放するにはどうすればよいですか?

xSuperMu

内部struct _Stack割り当てられた配列のメモリを解放しようとしていますが、プログラムがクラッシュし続けます

typedef struct _Stack
{
    int top;
    unsigned int capacity;
    int* arr;
}_Stack;

_Stack* createStack(int capacity)
{
    _Stack* stack = (_Stack*) malloc(sizeof(_Stack));
    stack->capacity = capacity;
    stack->top = -1;
    stack->arr = (int*) malloc(sizeof(stack->capacity * sizeof(int)));
    return stack;
}

この関数を使用してメモリを解放していますが、プログラムがここでクラッシュします。

// I have a problem here.
void stack_free(_Stack* stack)
{
    free(stack->arr);
    free(stack);
}

これがエラーメッセージです

gsamaras

これを変える:

stack->arr = (int*) malloc(sizeof(stack->capacity * sizeof(int)));

これに:

stack->arr = (int*) malloc(stack->capacity * sizeof(int));

配列のサイズを、に等しくしstack->capacity * sizeof(int)、その式のサイズに等しくしたくないためです

あなたのプログラムは、質問に示されていないコードのどこかで未定義の振る舞いを呼び出したに違いありません(間違ったサイズがmallocされたため)、それが後でクラッシュする理由です。


PS:C ++を使用しているので、代わりnewに(およびのdelete代わりにfree()を使用することを検討してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Crystalの一部の構造に割り当てられたメモリを手動で解放するにはどうすればよいですか?

分類Dev

構造体内の2D配列から動的に割り当てられたメモリを解放します

分類Dev

Cのtypdef構造体内の配列に値を割り当てるにはどうすればよいですか?

分類Dev

cの構造体内の構造体配列に値を割り当てるにはどうすればよいですか?

分類Dev

C ++で動的に割り当てられた構造の2D配列を作成するにはどうすればよいですか?

分類Dev

アクティビティによって割り当てられたすべてのメモリを解放するにはどうすればよいですか?

分類Dev

構造体ポインタを解放すると、Cの構造体内に割り当てられたメモリも解放されますか?

分類Dev

C ++で動的に割り当てられた配列メンバーで構成される動的に割り当てられた構造体を削除するにはどうすればよいですか?

分類Dev

関数内に割り当てられた動的メモリを解放するにはどうすればよいですか?

分類Dev

動的に割り当てられた構造体の配列内のアイテムにアクセスするにはどうすればよいですか?

分類Dev

構造体内の配列を動的に更新するにはどうすればよいですか?

分類Dev

スタックに割り当てられた構造体のmallocされた属性を解放するにはどうすればよいですか?

分類Dev

Javascriptでblobによって割り当てられたメモリを適切に解放するにはどうすればよいですか?

分類Dev

メモリリーク-別の構造体内でスレッド引数として渡されたTypdefStructにメモリを割り当てるにはどうすればよいですか?

分類Dev

Cでmallocとreallocを使用して構造体内に配列を適切に割り当てるにはどうすればよいですか?

分類Dev

mallocを使用して作成された別の構造体内の構造体の配列にmallocを使用するにはどうすればよいですか?

分類Dev

SWIGのカスタムコンストラクタで割り当てられたメモリを解放するにはどうすればよいですか?

分類Dev

構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

分類Dev

C.CStringによって割り当てられたメモリを解放するにはどうすればよいですか?

分類Dev

mxGetData()によって割り当てられたメモリを解放するにはどうすればよいですか?

分類Dev

iOSで配列のメモリの割り当てを解除するにはどうすればよいですか?

分類Dev

構造体内でこの配列の配列を初期化するにはどうすればよいですか?

分類Dev

これは、構造体の一部である動的に割り当てられた複数の配列を解放する正しい方法ですか?

分類Dev

PHPで配列にメモリを事前に割り当てるにはどうすればよいですか?

分類Dev

Cの文字列の配列にメモリを動的に割り当てるにはどうすればよいですか?

分類Dev

割り当てられた共有メモリ配列をFortranで返す関数を作成するにはどうすればよいですか?

分類Dev

構造体内で動的に割り当てられた配列を出力する際の未定義の動作

分類Dev

この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

分類Dev

この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

Related 関連記事

  1. 1

    Crystalの一部の構造に割り当てられたメモリを手動で解放するにはどうすればよいですか?

  2. 2

    構造体内の2D配列から動的に割り当てられたメモリを解放します

  3. 3

    Cのtypdef構造体内の配列に値を割り当てるにはどうすればよいですか?

  4. 4

    cの構造体内の構造体配列に値を割り当てるにはどうすればよいですか?

  5. 5

    C ++で動的に割り当てられた構造の2D配列を作成するにはどうすればよいですか?

  6. 6

    アクティビティによって割り当てられたすべてのメモリを解放するにはどうすればよいですか?

  7. 7

    構造体ポインタを解放すると、Cの構造体内に割り当てられたメモリも解放されますか?

  8. 8

    C ++で動的に割り当てられた配列メンバーで構成される動的に割り当てられた構造体を削除するにはどうすればよいですか?

  9. 9

    関数内に割り当てられた動的メモリを解放するにはどうすればよいですか?

  10. 10

    動的に割り当てられた構造体の配列内のアイテムにアクセスするにはどうすればよいですか?

  11. 11

    構造体内の配列を動的に更新するにはどうすればよいですか?

  12. 12

    スタックに割り当てられた構造体のmallocされた属性を解放するにはどうすればよいですか?

  13. 13

    Javascriptでblobによって割り当てられたメモリを適切に解放するにはどうすればよいですか?

  14. 14

    メモリリーク-別の構造体内でスレッド引数として渡されたTypdefStructにメモリを割り当てるにはどうすればよいですか?

  15. 15

    Cでmallocとreallocを使用して構造体内に配列を適切に割り当てるにはどうすればよいですか?

  16. 16

    mallocを使用して作成された別の構造体内の構造体の配列にmallocを使用するにはどうすればよいですか?

  17. 17

    SWIGのカスタムコンストラクタで割り当てられたメモリを解放するにはどうすればよいですか?

  18. 18

    構造体の配列でintポインタメンバーを初期化して動的に割り当てるにはどうすればよいですか?

  19. 19

    C.CStringによって割り当てられたメモリを解放するにはどうすればよいですか?

  20. 20

    mxGetData()によって割り当てられたメモリを解放するにはどうすればよいですか?

  21. 21

    iOSで配列のメモリの割り当てを解除するにはどうすればよいですか?

  22. 22

    構造体内でこの配列の配列を初期化するにはどうすればよいですか?

  23. 23

    これは、構造体の一部である動的に割り当てられた複数の配列を解放する正しい方法ですか?

  24. 24

    PHPで配列にメモリを事前に割り当てるにはどうすればよいですか?

  25. 25

    Cの文字列の配列にメモリを動的に割り当てるにはどうすればよいですか?

  26. 26

    割り当てられた共有メモリ配列をFortranで返す関数を作成するにはどうすればよいですか?

  27. 27

    構造体内で動的に割り当てられた配列を出力する際の未定義の動作

  28. 28

    この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

  29. 29

    この構造体をこの動的に割り当てられたスペースに配置するにはどうすればよいですか?

ホットタグ

アーカイブ