【发布时间】:2012-03-01 17:41:47
【问题描述】:
typedef struct
{
int A;
int B;
char* C; // problem is here
}foo;
int SetA(void)
{
....
return retval;
}
int SetB(void)
{
....
return retval;
}
const char* bar(void)
{
.....
char* retval="return val";
.....
return retval;
}
void SetFoo(foo* paramFoo)
{
paramFoo->A = SetA();
paramFoo->B = SetB();
paramFoo->C = bar();
}
static foo staticFoo;
void main()
{
SetFoo(&staticFoo);
printf("%s",staticFoo.C);// printing
}
一切都会好起来的,但 struct foo 中的“char*C”写得不好。为什么?我需要知道我是否犯了错误以及如何纠正它?我已经运行了 bar(),它返回了正确的值。
谢谢 ~ 最大
【问题讨论】:
-
“不会写好”是什么意思。你怎么知道?
-
@cnicutar 什么都不会写,当我尝试打印它时,它什么也没给我。
-
@cnicutar printf("%s",staticFoo.C);// 打印
标签: c linux pointers gcc struct