我在使用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 %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);
}
提前感谢。
答案 0 :(得分:5)
您需要#include <stdlib.h>
,并删除您的虚假声明:char *malloc();
此外,您需要找到更新的C引用! K&amp; R函数声明语法已经过时很长时间了。
考虑改变:
starttimer(AorB,increment)
int AorB; /* A or B is trying to stop timer */
float increment;
{
(看起来很健全)ANSI C标准:
int starttimer(int AorB, float increment) {
答案 1 :(得分:1)
char *malloc();
我不确定为什么要重新声明库函数malloc
。这里的任何方式都是malloc
void *malloc(size_t size);
请加入<stdlib.h>