私の課題では、"LNode" 構造体へのポインターと整数引数を引数として受け取る関数を作成する必要があります。次に、その整数を連結リストに追加するだけでなく、リストが適切な昇順になるように配置する必要があります。これについていくつかのさまざまな試みを試みましたが、これは投稿時の私のコードです。
LNode* AddItem(LNode *headPtr, int newItem)
{
auto LNode *ptr = headPtr;
ptr = malloc(sizeof(LNode));
if (headPtr == NULL)
{
ptr->value = newItem;
ptr->next = headPtr;
return ptr;
}
else
{
while (headPtr->value > newItem || ptr->next != NULL)
{
printf("While\n"); // This is simply to let me know how many times the loop runs
headPtr = headPtr->next;
}
ptr->value = newItem;
ptr->next = headPtr;
return ptr;
}
} // end of "AddItem"
それを実行して、5 を挿入してから 3 を挿入しようとすると、5 が挿入されますが、while ループが 1 回実行され、セグメンテーション違反が発生します。
また、このプロジェクトの骨格コードの一部であるため、引数を変更することはできません。助けてくれる人に感謝します。
それが役立つ場合、これは構造がどのように見えるかです
typedef struct LNode
{
int value;
struct LNode *next;
} LNode;