注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

融智技术学院

融智技术学院163分站,为广大好友提供更多的帮助

 
 
 

日志

 
 

【C语言每日一问】恰当的使用malloc()  

2014-03-20 13:25:56|  分类: C语言 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

问题:当我写C代码时我使用了malloc,但是我得到了:

  • [Warning] conflicting types for built-in function 'malloc'

这个警告当我编译它的时候。这是我使用的代码:

  • starttimer(AorB,increment)
  • int AorB;  /* A or B is trying to stop timer */
  • float increment;
  • {
  •  
  •  struct event *q;
  •  struct event *evptr;
  •  char *malloc();
  •  
  •  if (TRACE>2)
  •     printf("          START TIMER: starting timer at %f\n",time);
  •  /* be nice: check to see if timer is already started, if so, then  warn */
  • /* for (q=evlist; q!=NULL && q->next!=NULL; q = q->next)  */
  •    for (q=evlist; q!=NULL ; q = q->next)  
  •     if ( (q->evtype==TIMER_INTERRUPT  && q->eventity==AorB) ) { 
  •       printf("Warning: attempt to start a timer that is already started\n");
  •       return;
  •       }
  •  
  • /* create future event for when timer goes off */
  •    evptr = (struct event *)malloc(sizeof(struct event));
  •    evptr->evtime =  time + increment;
  •    evptr->evtype =  TIMER_INTERRUPT;
  •    evptr->eventity = AorB;
  •    insertevent(evptr);
  • } 

提前表示感谢

 

回答:你需要

  • #include <stdlib.h>

然后删除你的虚假声明:

  • char *malloc();

而且,你需要去找到一个新版的C参考!K&R函数声明语法已经被淘汰了很长时间了。

考虑后的修改:

  • starttimer(AorB,increment)
  • int AorB;  /* A or B is trying to stop timer */
  • float increment;
  • {

ANSI C标准:

  • int starttimer(int AorB, float increment)
  评论这张
 
阅读(16)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017