【问题标题】:test empty queue in c在c中测试空队列
【发布时间】:2018-02-03 15:11:06
【问题描述】:

我想测试一个名为queue_empty() 的函数并检查它是否真的创建了一个空队列。这是测试另一个函数的函数的代码:

void create_empty_test()
{

// Creates empty list.  
queue *q=queue_empty(NULL);

    // Verify that list is empty.
    if (????) {
        //error message.
        fprintf(stderr, "FAIL. New queue is not empty!\n");
        // clean up .
        queue_kill(q);
        // Exit with error.
        exit(EXIT_FAILURE);
    }

    // Everything okay
    queue_kill(q);
} 

问号的地方应该写什么?抱歉,如果这个问题不好,我对 C、队列、列表和指针等真的很陌生。我感谢所有答案和解释。

【问题讨论】:

  • 取决于queue 是什么。你没有表现出来。
  • 到目前为止,您所拥有的是q = queue_empty(NULL),它表面上为您提供了一个指向空队列的有效指针。根据queue 的结构,你需要知道一个空的是什么样子的。您还没有指出queue 的含义,所以这里没有人可以为您回答。这 ????会检查 q->something 是否有 NULL 或类似的东西,但这只是基于您提供的少量信息的有根据的猜测。

标签: c testing queue


【解决方案1】:

一个好的队列实现应该有空检查API,比如int is_empty(queue *)void *queue_top(queue *)。使用该 API。

如果 API 是你的,那么实现那些空检查 API。

【讨论】:

    猜你喜欢
    • 2011-09-10
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 2010-11-03
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多