#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<string.h>
#define SIZE 128
char *read_deploy(char *filename, char *item )
{
FILE *fp=NULL;
char str[SIZE];
char *b; char *p;
if((fp=fopen(filename, "r"))==NULL)
{
exit(EXIT_FAILURE);
}
while(fgets(str, sizeof(str), fp)!=NULL)
{
if(str[0]=='#')continue;
if(b=strstr(str,item))break;
}
p=strstr(b,"="); printf("%s",++p);
return (++p);
}
int main(int argc, char **argv)
{
char *read_deploy(char *filename, char *item );
char *g;char *a;char*c;
a=argv[1]; c=argv[2];
g=read_deploy(a,c);
printf("%s\n", g);
return 0;
}
read_deploy() 是要读取自己些的配置文件中 关键词的"="后面的内容
filename 文件名,item是关键字符串;
打印++p 没问题的 打印g 是乱码 ,也就是说传递不成功
我想不出原因阿 求教谢谢诶
关于返回指针的问题
- windwiny
- 帖子: 2254
- 注册时间: 2007-03-13 17:26
Re: 关于返回指针的问题
别玩指针了
java,python
java,python
-
- 帖子: 51
- 注册时间: 2009-05-03 22:57
Re: 关于返回指针的问题
这个能玩????
-
- 帖子: 51
- 注册时间: 2009-05-03 22:57
Re: 关于返回指针的问题
是作用域的问题 哈哈
- peachcolor
- 帖子: 898
- 注册时间: 2006-05-20 14:03
Re: 关于返回指针的问题
说实话这代码很不优雅
- ywj
- 帖子: 27
- 注册时间: 2008-10-18 13:01
- 联系:
Re: 关于返回指针的问题
嗯,说对了。wbcfan 写了:是作用域的问题 哈哈
read_deploy()这个函数的p在栈里,
当这个函数被调用完,栈上的内存被系统自动回收,
所以指针p就指向了一个未知的地址。
请使用指向指针的指针。
穿越生命中的迷雾。。。
- tianyaqu
- 帖子: 97
- 注册时间: 2008-12-05 20:43
- 来自: 深圳
Re: 关于返回指针的问题
size=150]可不可以这样 :在原来的函数基础上添加一个指针变量。
其中加一句 将指针保存。
然后这样调用
这样指针就传给了g ..可行不??(新手)
[/size]
代码: 全选
void read_deploy(char *filename, char *item ,char *p_return)
代码: 全选
p_return=++p;
然后这样调用
代码: 全选
read_deploy(a,c,g);
[/size]
道是何物,直教,生死相许?
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: 关于返回指针的问题
str 在 read_deploy 返回后就销毁了,返回的 ++p 是无效指针
PS 除了这个之外还有错误
PS 除了这个之外还有错误
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。