当前位置: 技术问答>linux和unix
C语言地址传递问题?
来源: 互联网 发布时间:2016-04-21
本文导语: 第一个文件中一个函数中调用第二个文件中一个函数,文件一中函数传递的地址到文件二函数中改变了,但是在传递到文件一函数中的地址没有改变?这两个文件是通过lib库连接的。 例如: main() { . . . ...
第一个文件中一个函数中调用第二个文件中一个函数,文件一中函数传递的地址到文件二函数中改变了,但是在传递到文件一函数中的地址没有改变?这两个文件是通过lib库连接的。
例如:
main()
{
.
.
.
char sta[8096];
int len,j;
j = test1((unsigned char *)&sta[14],&len);
.
.
.
}
int test1(unsigned char *pro,int *len)
{
.
.
.
从黑盒中取出数据结构struct A,其中包括数据的dst;
pro = A->dst;
.
.
.
}
例如:
main()
{
.
.
.
char sta[8096];
int len,j;
j = test1((unsigned char *)&sta[14],&len);
.
.
.
}
int test1(unsigned char *pro,int *len)
{
.
.
.
从黑盒中取出数据结构struct A,其中包括数据的dst;
pro = A->dst;
.
.
.
}
|
pro = A->dst;
改为
memcpy(pro,A->dst,strlen( A->dst)或者sizeof(A->dst));
改为
memcpy(pro,A->dst,strlen( A->dst)或者sizeof(A->dst));
|
外部的,全局的,
分配空间,
或者调用的函数 分配空间 当做被调用的函数的参数。
这样能传递出来
分配空间,
或者调用的函数 分配空间 当做被调用的函数的参数。
这样能传递出来