读书人

这样做到底错在哪里.关于指针做函数变

发布时间: 2012-03-23 12:06:21 作者: rapoo

这样做到底错在哪里...关于指针做函数变量的问题
#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);

读书人网 >C语言

热点推荐