5.4 我有个函数,它应该接受并初始化一个指针
void f(int *ip) { static int dummy = 5; ip = &dummy;}
但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。
你确定函数初始化的是你希望它初始化的东西吗?请记住在 C 中, 参数是
通过值传递的。被调函数仅仅修改了传入的指针副本。你需要传入指针的
地址 (函数变成接受指针的指针), 或者让函数返回指针。
参见问题 4.5 和 4.7。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)