私はCプロジェクトを開発していますが、特定の瞬間にcalloc()関数を呼び出し、それは既に使用中のメモリブロックを割り当てます。そんなことがあるものか ?私は私のメモリ割り当ての使用をチェックして、毎回malloc/callocを呼び出すたびに私はfree(pointer_to_the_allocated_memory)を呼び出します。つまり、メモリリークの問題ではなく、2度解放されたポインタではありません。 私はコードを貼り付けていません。なぜなら、これは教職の仕事であり、私はまだそれを送っていないからです。 あらゆるタイプのヘルプ/アドバイスを歓迎します。 ありがとうございます。Calloc()が以前に割り当てられたメモリを割り当てようとしています
-2
A
答えて
1
2つのポインタが同じ場所を指している可能性があります。
p1 = malloc(sizeof(int));
/* ... */
p2 = p1;
/* ... */
free(p1);
/* ... */
p3 = malloc(sizeof(int)); /* may allocate the block already used by p2 */
多くの場合、明らかではないことに注意してください。それはポインタ演算(すなわち、p2++
)を介して行われてもよく、またはこれの異なる部分が異なる機能で行われてもよい。
もう一つの可能性は、あなたがそれに気付かず、ポインタを解放することです:
p1 = malloc(sizeof(int));
foo(p1); /* this function calls free(p1) */
p2 = malloc(sizeof(int)); /* may allocate the block already used by p1 */
関連する問題
- 1. callocを使用したメモリ割り当て
- 2. 割り当てメモリ**
- 3. メモリ割り当て
- 4. 割り当てメモリ
- 5. メモリ割り当て
- 6. メモリ割り当て
- 7. 割り当てメモリ
- 8. 割り当てられたメモリのビュー
- 9. Pythonリストの割り当てとメモリ割り当て
- 10. メモリ割り当てプロファイリング中にメモリ割り当てが増加し続ける
- 11. メモリ割り当てとループ
- 12. すでに割り当てられている変数にメモリを割り当てていますか?
- 13. メモリをmalloc()で割り当てよう
- 14. 1GB以上のメモリ割り当てエラー
- 15. メモリが8Gヒープサイズを割り当てられています
- 16. C++クラス配列のメモリ割り当ての再割り当て
- 17. UIViewController.viewのメモリ割り当て/割り当て解除
- 18. メモリの割り当て/割り当て解除(WindowsではC++)
- 19. iPhone setDelegateを以前に割り当てられたオブジェクト
- 20. dllの境界を越えたメモリ割り当てと割り当て解除
- 21. デストラクタが割り当てられたメモリを削除しない
- 22. callocを使用してメモリを割り当てて解放する
- 23. dma_alloc_coherent()メモリ割り当てに失敗しました(4MB以上)
- 24. C++でメモリを割り当て、割り当てを解除します
- 25. Tensorflowはメモリが割り当てられていても割り当てできません。
- 26. 新しい割り当てられたメモリを割り当てる前にvarをnilに設定しないと、メモリリークが起こるでしょうか?
- 27. 以前に割り当てられたオブジェクトの問題のリリース
- 28. Tensor Flow:メモリが不足して割り当てようとしています
- 29. セグメンテーションフォールト、メモリが割り当てられていません
- 30. メモリ割り当てエラー。
は/デバッグあなたのメモリ使用量を追跡するためにvalgrindのようなものを使用してみてください。 –
各プログラムには独自の仮想メモリ空間があります。 – sjsam
オリジナルと似たものを投稿できますか?独自のコードについては、直接共有したくないという質問をする人がたくさんいますが、通常は例を挙げています。状況を小規模に再現できますか? –