私は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. ... nullで、割り当てられていませんが、割り当てられているようですか?
- 14. メモリをmalloc()で割り当てよう
- 15. 1GB以上のメモリ割り当てエラー
- 16. メモリが8Gヒープサイズを割り当てられています
- 17. 以前に動的に割り当てられたが、別のポインタで割り当てられたメモリを削除できますか?
- 18. メモリの割り当て/割り当て解除(WindowsではC++)
- 19. C++クラス配列のメモリ割り当ての再割り当て
- 20. UIViewController.viewのメモリ割り当て/割り当て解除
- 21. dllの境界を越えたメモリ割り当てと割り当て解除
- 22. Pythonで変数が割り当てられていないときに変数を割り当てよう
- 23. callocを使用してメモリを割り当てて解放する
- 24. デストラクタが割り当てられたメモリを削除しない
- 25. iPhone setDelegateを以前に割り当てられたオブジェクト
- 26. C++でメモリを割り当て、割り当てを解除します
- 27. dma_alloc_coherent()メモリ割り当てに失敗しました(4MB以上)
- 28. Tensorflowはメモリが割り当てられていても割り当てできません。
- 29. Tensor Flow:メモリが不足して割り当てようとしています
- 30. Dalvikのメモリ割り当て
は/デバッグあなたのメモリ使用量を追跡するためにvalgrindのようなものを使用してみてください。 –
各プログラムには独自の仮想メモリ空間があります。 – sjsam
オリジナルと似たものを投稿できますか?独自のコードについては、直接共有したくないという質問をする人がたくさんいますが、通常は例を挙げています。状況を小規模に再現できますか? –