| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:这个错误怎么改正?
只看楼主 加入收藏
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
结帖率:81.82%
收藏
已结贴  问题点数:20 回复次数:4 
这个错误怎么改正?
程序代码:
char** coding(H_tree *t,int n,int i,stack *s)//t为霍夫曼树,n为符号,i为当前节点,s为存放编码的栈
 {
    int j; char **HC;//hc存放编码
    init_stack(s);//初始化栈
    HC=new (char *)[n];error C2143: syntax error : missing ';' before '['   
    if(t->node[i].lchild==-1&&t->node[i].rchild==-1)
    {
        HC[i]=new char[s->top];
        for(j=0;j<s->top;j++)
            HC[i][s->top-j-1]=pop(s);
    }//如果为叶子节点,这输出此符号说在叶子节点的编码;
    else

        push(s,'0');
        coding(t,n,t->node[i].lchild,s);//采用递归的方式对叶子节点的符号进行编码叶子节点为1,其他节点为零
        pop(s);//由于根节点是进栈一个字符所以要弹出一个字符
        push(s,'1');//右子树的叶子节点字符为1;
        coding(t,n,t->node[i].rchild,s);
        pop(s);
    }
    return HC;
}
2014-11-02 20:59
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
收藏
得分:0 
是不是要将new,换成malloc
2014-11-02 22:17
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
收藏
得分:0 
回复 2 楼 风车转风车 89
改成malloc就通过了,为什么?
难道new是c++专用,c不能用?还是什么原因,求解?
2014-11-03 09:30
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:20 
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。

C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存 new 是个操作符

楼主你这个是霍夫曼编码的代码?
2014-11-03 10:33
风车转风车89
Rank: 2
等 级:论坛游民
帖 子:125
专家分:45
注 册:2014-9-15
收藏
得分:0 
回复 4 楼 书生等待
谢谢您,我知道了,
2014-11-03 12:13
快速回复:这个错误怎么改正?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015835 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved