1
我試圖出在C()的鏈接列表程序,我使用malloc動態分配存儲器,然後當我嘗試使用免費()在的端部函數,程序運行到無限循環。程序運行到當我用無限循環免費()
這是怎麼發生的?
void Insert(int x, int pos)
{
struct Node *newnode = (struct Node*) malloc(sizeof(struct Node));
newnode->data = x;
newnode->next = NULL;
struct Node* temp, *left, *right;
int i = 1;
temp = head;
if(head == NULL)
{
head = newnode;
}
else{
while(i != pos - 1)
{
temp = temp->next;
i++;
}
newnode->next = temp->next;
temp->next = newnode;
}
free(newnode);
}
[請參閱此討論關於爲什麼不在'C'中投射'malloc()'和家族的返回值。](http://stackoverflow.com/q/605845/2173917)。 –
你確定它因爲免費而陷入無限循環嗎?這很奇怪... – Silveris
爲什麼你在那裏免費?不要,你想在以後使用他們嗎? –