void f1(char *explanation)
{
char p1;
p1 = malloc(100);
(void) sprintf(p1,
"The f1 error occurred because of '%s'.",
explanation);
local_log(p1);
}
您看到問題了嗎?除非 local_log() 對 free() 釋放的內存具有不尋常的響應能力,否則每次對 f1 的調用都會泄漏 100 字節。在記憶棒增量分發數兆字節內存時,一次泄漏是微不足道的,但是連續操作數小時后,即使如此小的泄漏也會削弱應用程序。
文章來源于領測軟件測試網 http://www.kjueaiud.com/