C语言:传递字符串

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:17:31
C语言菜鸟问:
我象一个函数传递一个结构体,结构体成员有字符指针,在函数内部我从文件向字符指针里读字符串,成功,但是读完为什么回到主调函数,读取到的东西就都没有了?指针不是在函数里被赋值了吗?如果有错误麻烦指出一下,顺便告诉我怎么能通过函数实现从文件里读取结构体(结构体里有指针),希望把文件中的字符串对号地读入程序中的结构体,然后输出?
比如说:
typedef struct{int m; char *n}INFO;
INFO read(INFO a)
{INFO b
fp=.....//打开文件,文件中的存储格式是一个整数和一个字符串
fscanf(fp,"%d",b.m);
fgets(b.n,10,fp);
return b;}
如果用主函数接收这个返回值,就接受不到.

你还记不记得交换两个数的数值的函数change(),如果直接将要交换的数传给change,是起不到交换的目的的(被交换的是change中的两个数,main中的那两个没有被交换),需要使用指针。
同理,把结构体传到你的函数中,改变的是这个函数中的结构体,不是main中的,试试把函数改成接受结构体指针的形式

另一个问题不会,呵呵,不好意思

代码中,没有给结构体成员n分配内存,n是个野指针。