| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:书上的例子,为什么gcc编译不了?
只看楼主 加入收藏
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:336
专家分:1135
注 册:2014-4-13
收藏
得分:20 
看了这个代码感觉就像是一个数学家在解数学题,如看天书一般,晦涩难懂,真佩服能写出这样程序的人,但写程序不是解数学题,还是要按写程序的道理来做,应该化繁为简,分步来做,而不能把几步合在一起处理,尽管是书上的程序,完全没有学习的必要,说它是一段烂代码都不为过。下面是几个错误的出处。
12CPLX0.C:46:30: error: invalid conversion from 'void*' to 'double*' [-fpermissive]
12CPLX0.C:47:30: error: invalid conversion from 'void*' to 'double*' [-fpermissive]
12CPLX0.C:48:30: error: invalid conversion from 'void*' to 'double*' [-fpermissive]
12CPLX0.C:49:31: error: invalid conversion from 'void*' to 'double*' [-fpermissive]
12CPLX0.C:50:31: error: invalid conversion from 'void*' to 'double*' [-fpermissive]
源于代码
    c=malloc(m*sizeof(double));
    d=malloc(m*sizeof(double));
    w=malloc(m*sizeof(double));
    xt=malloc(n*sizeof(double));
    xf=malloc(n*sizeof(double));
malloc函数应用不当,造成类型错误,应加上(double *) 如以下
c=(double *)malloc(m*sizeof(double));

12CPLX0.C:176:50: error: cannot convert 'double (*)[4]' to 'double*' for argument '8' to 'int cplx(int, int, double*, double*, double, double, double*, double*, int, void
(*)(int, int, double*, double*, double*, double*), double (*)(double*, int))'
原因
cplx函数中第8个参数double *xx 调用时传入参数不一致,至于如何去改,很不容易,或许作此程序的人能改,这也就是写程序不懂化繁为简,分步处理的恶果,出了错误不好处理,牵一发而动全身,经常有人说,写代码要本着简单的方式处理,一个函数只做一件事,一句代码只完成一个任务,我觉得这样是非常非常好的,也很容易做到。
2015-09-10 10:29
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:0 
回复 11楼 jklqwe111
感谢不吐槽的侠客,基本解决了问题。谢谢!
论坛需要你这样的人!!!
2015-09-10 10:36
hengde_li
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:131
专家分:178
注 册:2010-1-15
收藏
得分:0 
回复 11楼 jklqwe111
剩下的是算法上的小细节,仔细扣扣能搞定,谢谢!
2015-09-10 10:40
voiceshen
Rank: 2
等 级:论坛游民
帖 子:21
专家分:58
注 册:2015-9-8
收藏
得分:0 
回复 10楼 hengde_li
至少你得试着把所有错误解决。
2015-09-10 10:48
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
http://www.

这个值得一看 搞数学的代码一般写不好
2015-09-11 14:29
快速回复:书上的例子,为什么gcc编译不了?
数据加载中...
 
   



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

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