首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这样做到底错在哪里.关于指针做函数变量的有关问题

2012-03-23 
这样做到底错在哪里...关于指针做函数变量的问题#includestdio.h voidf(unsignedchar*i){FILE*fp3fp3f

这样做到底错在哪里...关于指针做函数变量的问题
#include   "stdio.h "

void   f(unsigned   char   *i)
{
FILE   *fp3;
fp3   =   fopen( "c:\\test2.txt ", "rb+ ");
fseek(fp3,0,SEEK_SET);
i   =   (unsigned   char   *)malloc(5);
fread(i,5,1,fp3);
}

main   ()
{
FILE   *fp;
unsigned   char   *t;

fp   =   fopen( "c:\\test1.txt ", "wb+ ");
f(t);
fwrite(t,5,1,fp);
exit(1);

}


在此先谢谢大哥们的关注




[解决办法]
参数传递都是值传递,函数内对形参的修改,实参是看不到的。
对于指针,也没什么特别的。
[解决办法]
#include "stdio.h "

void f(unsigned char **i)
{
FILE *fp3;
fp3 = fopen( "c:\\test2.txt ", "rb+ ");
fseek(fp3,0,SEEK_SET);
*i = (unsigned char *)malloc(5);
fread(*i,5,1,fp3);
}

main ()
{
FILE *fp;
unsigned char *t;

fp = fopen( "c:\\test1.txt ", "wb+ ");
f(&t);
fwrite(*t,5,1,fp);
exit(1);

}

[解决办法]
fwrite(*t,5,1,fp);
---
后面请释放内存
free(t);

热点排行