C语言 正确使用 malloc()

  • 本文关键字:malloc 语言 c malloc
  • 更新时间 :
  • 英文 :


我在用 C 编写代码时使用 malloc,但我得到

[警告] 内置函数"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 %fn",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 startedn");
      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) {
char *malloc();

我不确定你为什么要重新声明库函数malloc.无论如何,这是malloc的声明

void *malloc(size_t size);

请包括<stdlib.h>

相关内容

  • 没有找到相关文章