我試圖直接使用兩個函數直接對我在鏈接列表中輸入的數字進行排序第一個添加元素頭部第二個包含分段錯誤的元素應該利用第一個元素做這項工作。分段錯誤,在C中的列表
#include <stdio.h>
#include <stdlib.h>
typedef struct cellule
{
int val;
struct cellule *suivant;
} cellule;
typedef struct cellule* liste;
liste insert_tete(liste L,int n)
{
liste p;
p=malloc(sizeof(cellule));
p->val=n;
p->suivant=L;
return p;
}//ok :)
liste insert_croissant(liste L,int n)
{
if(!L)
{
L=insert_tete(L,n);
return L;
}
liste p,q;
for(q=L,p=L; (p!=NULL)&&(n> (p->val)) ; q=p,p=p->suivant); //
p=insert_tete(p,n);
q->suivant=p;
return L;
}
請重新格式化您的代碼以使其更易於閱讀。 – 2012-04-11 22:11:29
'insert_croissant()'聽起來很好吃! – FatalError 2012-04-11 22:12:01
不要在malloc中返回malloc的返回值。沒有理由這樣做,它實際上可以隱藏你忘記包含''的事實(沒有強制轉換,不存在非強制函數返回'int' ,這將失敗,但演員隱藏它)。 C沒有問題強制將'void *'隱式地指向任何其他指針類型。 –
2012-04-11 22:13:59