# include & ltmalloc.h & gt
# include & ltstdlib.h & gt
typedef int Elem
typedef結構Pa
{
Elem數據;
struct Pa * next
}listi,* list
列表推送(列表L,元素e)
{
列表p;
p =(listi *)malloc(sizeof(listi));
p->;next = NULL
p->;數據= e;
p->;next = L-& gt;接下來;
l-& gt;next = p;
返回L;
}
列表pop(列表L,Elem & ampe)
{
列表s = NULL
如果(L-& gt;next==NULL)返回0;
其他
{ s = L-& gt;接下來;
e = s-& gt;數據;
l-& gt;next = s-& gt;接下來;
免費;
s = s-& gt;接下來;}
}
int listEmpty(列表L)
{
return(L->;next = = NULL);
}
主()
{
列表ha;int N;elem e;
ha =(listi *)malloc(sizeof(listi));
哈-& gt;next = NULL
Printf("請輸入壹個小數:");
scanf("%d ",& ampn);
Printf("轉換為十六進制:");
當(名詞)
{
推(哈,N % 16);
N = N/16;
}
而(!listEmpty(公頃))
{pop(ha,e);
printf("%x ",e);
}
getchar();
}
妳最大的問題是指針在定義的時候沒有初始化。這就使得指針指向了壹個非法區域,然後試圖訪問這些內存肯定會提示錯誤。以上是我修改過的代碼。。