#include<stdio.h>
#include<stdlib.h>
#define LOOPS 100
#define RAYSIZE 1024
int main (int argc, char **argv)
{
int count = 0;
char *pointer = NULL;
for(count=0; count<LOOPS; count++) {
pointer = (char *)malloc(sizeof(char) * RAYSIZE);
}
free(pointer);
return count;
}
0
A
回答
1
由於您的免費通話超出循環範圍,因此您首次泄漏內存99次。只有最後分配的內存被釋放。
0
對於free
,您應該有多少個電話malloc
。在這裏,您可以在循環中呼叫malloc
,這意味着您將有更多的呼叫,而不是free
。
1
每次通過循環時,您都會分配一些內存並設置pointer
指向它。當你這樣做時pointer
不再指向最後一塊內存,但它仍然分配給你的程序。當你撥打free(pointer)
時,你只能釋放你分配的最後一塊內存。
相關問題
- 1. 內存泄漏出malloc
- 2. iphone內存泄漏和malloc?
- 3. 內存泄漏使用malloc
- 4. 內存泄漏錯誤
- 5. 內存泄漏錯誤?
- 6. Catalina.out內存泄漏錯誤
- 7. 泄漏內存和可能的malloc錯誤
- 8. iPhone內存泄漏使用malloc
- 9. 鏈表malloc的內存泄漏
- 10. malloc指針導致內存泄漏?
- 11. Malloc在循環導致內存泄漏
- 12. malloc問題,C中的內存泄漏
- 13. 內存泄漏使用malloc失敗
- 14. malloc + strdup是否泄漏內存?
- 15. Valgrind malloc泄漏
- 16. C++內存泄漏的函數參數
- 17. removeItemAtPath中的內存泄漏:錯誤:?
- 18. Qt:查找內存泄漏和錯誤
- 19. SEVERE:listenerStart和內存泄漏錯誤
- 20. 內存泄漏終結者錯誤
- 21. 泄漏的內存,分段錯誤,C
- 22. Visual C++,MFC應用程序,No Malloc等等:什麼會導致內存泄漏?
- 23. 內存泄漏誤報
- 24. 內存泄漏
- 25. 內存泄漏:
- 26. 內存泄漏
- 27. 內存泄漏
- 28. 內存泄漏
- 29. 內存泄漏
- 30. 內存泄漏
感謝您的時間 – user1754940 2011-04-11 06:45:51