C抽象数据类型程序在运行时卡住了

时间:2017-06-23 15:00:51

标签: c generic-programming abstract-data-type

作为我学习的一部分,我必须在C中准备一个ADT通用集。 当我运行程序时,它没有结束。 我相信在破坏功能方面存在问题 并在 当我在pop func中的destory func和mySet-> freefunc中评论free(s)时 该计划运作良好。

如果您能帮助我确切了解问题所在,我将不胜感激。

void destroy (Set s){
if (s == NULL)
    return;
while (s->top > 0 && pop(s) == Success) ;

if(s->array != NULL)
    free(s->array);
if(s != NULL)
  //  free(s);
return;}


Result pop(Set mySet){
if ((mySet == NULL) || (mySet->top == 0))
    return Fail ;

mySet->top--;
//mySet->freefunc(mySet->array[mySet->top]);
return Success ;}

void freefunc(Elem x){
if(x != NULL)
    free(x);}

typedef void* Elem; typedef set_t* Set;

struct set_t{
Elem* array ;
int top ;
int maxCapacity ;
copy_fnc copfunc;
free_fnc freefunc;
compare_fnc compfunc;};

我还附加了一个指向github的链接以及程序和文件

https://github.com/gun0071/ADT_set

谢谢!

0 个答案:

没有答案