首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CUDD执行中的分割故障

CUDD执行中的分割故障
EN

Stack Overflow用户
提问于 2019-12-17 05:38:55
回答 1查看 160关注 0票数 0

在编译时,我使用了:

代码语言:javascript
复制
   1)  ./configure --enable-dddmp --enable-obj --enable-shared --enable-static; make
   2)  gcc test.c -o testprogram -I /path/to/cudd-3.0.0/cudd -I /path/to/cudd-3.0.0/util -I /path/to/cudd-3.0.0/ -static -L /path/to/cudd-3.0.0/cudd/.libs/ -lcudd -lm

程序编译成功。我使用的是cudd3.0.0软件包。在此之后,我将在执行过程中得到这个分段错误:

请建议正确的方式来执行这一点,为什么我要得到这个错误?

我要增加一个主要功能:

代码语言:javascript
复制
int main (int argc, char *argv[])
{
    char filename[30];
    DdManager *gbm; /* Global BDD manager. */
    gbm = Cudd_Init(0,0,CUDD_UNIQUE_SLOTS,CUDD_CACHE_SLOTS,0); /* Initialize a new BDD manager. */
    DdNode *bdd, *var, *tmp_neg, *tmp;
    int i;
    bdd = Cudd_ReadOne(gbm); /*Returns the logic one constant of the manager*/
    Cudd_Ref(bdd); /*Increases the reference count of a node*/

    for (i = 3; i >= 0; i--) {
        var = Cudd_bddIthVar(gbm,i); /*Create a new BDD variable*/
        tmp_neg = Cudd_Not(var); /*Perform NOT boolean operation*/
        tmp = Cudd_bddAnd(gbm, tmp_neg, bdd); /*Perform AND boolean operation*/
        Cudd_Ref(tmp);
        Cudd_RecursiveDeref(gbm,bdd);
        bdd = tmp;
    }

    bdd = Cudd_BddToAdd(gbm, bdd); /*Convert BDD to ADD for display purpose*/
    print_dd (gbm, bdd, 2,4);   /*Print the dd to standard output*/
    sprintf(filename, "./bdd/graph.dot"); /*Write .dot filename to a string*/
    write_dd(gbm, bdd, filename);  /*Write the resulting cascade dd to a file*/
    Cudd_Quit(gbm);
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-17 05:47:37

是的,已经解决了。我还没有在代码行的适当位置创建名为“bdd”的文件夹:

代码语言:javascript
复制
sprintf(filename, "./bdd/graph.dot");

现在,它正在执行。抱歉,我以为是概念上的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59368157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档