读书人

函数传递指针

发布时间: 2012-03-06 20:47:55 作者: rapoo

函数传递指针 在线等

C/C++ code
void A (RSTRUCT * R) void fun(){...    RSTRUCT * f;    f.x = 23;    f.y = 23;    f.z = 23;    A (f)}



调试 fun()函数 发现f 结构体 有内容

可到A 函数调试,发现 f 内容为空,意思是说,函数没有成功传递参数。


这个题怎么处理呀?

[解决办法]
C/C++ code
void fun(){...    RSTRUCT * f;//这只是一个指针,没有指向任何结构体,需要先给这个指针分配空间,或是指向一个结构体再赋值    f.x = 23;    f.y = 23;    f.z = 23;    A (f)}
[解决办法]
C/C++ code
    RSTRUCT * f;    f.x = 23; //首先f没有分配内存,这个前面已经说了,但是针对指针,应该是   // f->x=23,如果写成f.x=23应该出现编译错误    A (f)
[解决办法]
C/C++ code
void A (RSTRUCT * R) void fun() { ... RSTRUCT * f; f = (RSTRUCT *)malloc(sizeof(RSTRUCT));//分配内存 f->x = 23;//赋值 f->y = 23;  f->z = 23; A (f) }
[解决办法]
void A (RSTRUCT * R);

void fun()
{
...
RSTRUCT * f;
f = (RSTRUCT *)malloc(sizeof(RSTRUCT));//分配内存
if (f!=NULL) {
f->x = 23;//赋值
f->y = 23;
f->z = 23;
A (f) ;
}
}

读书人网 >C语言

热点推荐