c语言 这句编译错误是什么意思? 第167行长这样“ if((fp=fopen(*filename,"r"))==NULL)”
client.c:167:error:passingargument1of‘fopen’makespointerfromintegerwithoutacast/usr/i...
client.c:167: error: passing argument 1 of ‘fopen’ makes pointer from integer without a cast
/usr/include/stdio.h:271: note: expected ‘const char * __restrict__’ but argument is of type ‘char’ 展开
/usr/include/stdio.h:271: note: expected ‘const char * __restrict__’ but argument is of type ‘char’ 展开
3个回答
展开全部
去掉星号:
if((fp=fopen(filename,"r"))==NULL)
char filename[80]; 或 char *filename;
调用 fopen 时 用 fp=fopen(filename,"r") ...
if((fp=fopen(filename,"r"))==NULL)
char filename[80]; 或 char *filename;
调用 fopen 时 用 fp=fopen(filename,"r") ...
追问
可是我的filename是个pointer呀,不用加星号么?
追答
声明里有星号,调用里/语句里 有星号是值,无星号是指针。
char *filename; // 声明里有星号,是指针
...
fp=fopen(filename,"r") // 调用里/语句里 无星号是 指针调用
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
filename出问题了,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询