{
//定義string1指針,其指向一個堆上的100個字節的內存空間
char *string1 = (char*)malloc(100*sizeof(char));
//定義string2指針,其指向一個堆上的200個字節的內存空間
char *string2 = (char*)malloc(200*sizeof(char));
scanf("%s", string2);
string1=string2;/*string1原先指向的100個字節的內存沒有被釋放*/
/*而后又被指向string2所指的內存塊,造成前面100個字節的內存泄漏*/ 軟件測試
free(string2);
free(string1); /* 這個free()調用會失敗,因為string1指向的內存地址與string2的相同,而那塊內存已經被釋放了 */
return 0;
}
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/