c中的返回指针的函数问题!
若一个函数返回一个参数,这个参数是个指针变量,如果存储的是个字符串如: char * test() {char *p ; p="ab.c" return(p); }
如果显示可用 void main() { char *m; m=test(); printf("%s\n",m) } 这样没问题,但是如果调用类似流的函数会出现问题 如果
void main() { char *m; FILE *fp; m=test(); fp=fopen(m,"r");//在这有时会出现问题,提示找不到改文件(假如该文件夹存在ab.c这个文件) }
大家说说这是啥问题? 另外,我的解决方式是在函数中带个参数
char * test(char *s) {char *p ; p="ab"; strcmp(s,p); return(p); }
void main() { char *m; char *s; FILE *fp; m=test(s); fp=fopen(s,"r");} 这样就能解决问题 |