我編程C在VC++ 2008中的一個assingment我模擬adjList的圖形實現。我可以在兩個頂點之間閱讀添加邊並打印圖形。 我想刪除兩個頂點之間的邊並再次打印圖。無論我做什麼,我都無法在刪除邊緣後打印圖形。我得到0xfeefee :(這是什麼?我如何才能解決這個節目。我怎樣才能擺脫0xFEEFEE在VC
我刪除功能和打印圖形功能如下所示。
void deleteEdge(Graph G, Vertex V, Vertex W)
{
Edge list,prev,temp;
list=V->list;
prev=NULL;
//
while(list!=NULL && list->to->value!=W->value){
prev=list;
list=list->next;
}
// have found the element.
if(list!=NULL){
temp=list;
// if first element of list is deleted.
if(prev==NULL)
list=list->next;
else
prev->next=list->next;
// reallocate.
free(temp);
}
}
void GRAPHprint(Graph G)
{
Vertex tmp;
Edge list;
for(tmp = G->head;tmp!=NULL;tmp=tmp->next)
{
fprintf(stdout,"V:%d\t",tmp->value);
list=tmp->list;
while(list!=NULL)
{
fprintf(stdout,"%d\t",list->to->value);
list=list->next;
}
fprintf(stdout, "\n");
}
system("pause");
}
'0xfeeefeee'是一個標誌,在Windows上運行調試版本時,會釋放內存空間(請參閱http://www.nobugs.org/developer/win32/debug_crt_heap.html)。 – 2010-03-14 22:30:12