你好,我正在尝试对链表进行排序
当我对其进行排序时,它可以在Visual Studio上运行,但是当我将其移至linux时,由于某种原因,链表未进行排序。
我的排序获取指向列表指针的指针,这是我的排序代码:
我这样调用函数:
SortQueue(&pprocessQueue, ProcessPrIdCompare);
这是我的功能
该函数使用EnqueueInOrder,它将每个链接放在他的位置。

 void SortQueue(Queue **pqueue, CompareFunction CompareElements)
 {
   Queue *ptemp = CreateQueue( (*pqueue)->CopyElement,
                               (*pqueue)->FreeElement,
                               CompareElements,
                               (*pqueue)->PrintElement );

   (*pqueue)->CompareElements = CompareElements;

   while (!(IsEmpty(*pqueue) == SUCCESS))
     EnqueueInOrder(ptemp, DequeueLink(*pqueue));

   while (!(IsEmpty(ptemp) == SUCCESS))
    EnqueueInOrder(*pqueue, DequeueLink(ptemp));

   FreeQueue(ptemp);
}


我正在使用gcc进行编译的1件事。

最佳答案

我看不到您的代码有问题。检查位于您展示给我们的代码之外的代码可能是明智的。

关于c - 将C代码从Visual Studio迁移到Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3592712/

10-15 10:58