【发布时间】:2012-12-08 01:09:56
【问题描述】:
我的以下代码因 EXC_BAD_ACCESS (code=1) 而失败,并出现以下警告:
不兼容的整数到指针转换将“int”传递给“const char *”类型的参数
char *printb(fmt,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
{
static char string[256];
sprintf(string,fmt,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
return(string);
}
printb 被这段代码调用:
if (gotargs) fname = *(argv++);
else do {
printf("file name #%d: ", i+1);
fname = gets(inbuf);
} while (*fname == 0);
if ((gbuf=fopen(fname, "r")) == NULL)
error(printb("I can't find '%s'", fname));
printf("reading '%s'...\n", fname);
if (fgets((lp = inbuf), 512, gbuf) == NULL)
error("file is empty");
另外,如何正确地将gets() 转换为fgets()?
谢谢
【问题讨论】:
-
您尚未声明
printb()函数参数的类型。这是故意的,还是你对 C 很陌生? -
很久没写C了,这段代码本身就很古老。
标签: c