- 论坛徽章:
- 0
|
原帖由 yunccll 于 2009-5-28 04:19 发表 ![]()
C语言基础知识点:
1. C函数的参数是按值传递: 函数内部对传入参数(形参)的修改不影响实际传入的参数值(实参)。
2. 指针的内容是一个地址: 指针是一个保存值的地方, 只是它的值是地址(另外一个变量的地 ...
类比一下swap函数:
int a=2 , b = 3;
swap(a, b) // 不会修改 a ,b 的值。
swap(&a, &b) // 函数里面修改传入变量的值,需要传地址。
反观你的程序
Linkcity L=NULL; // 声明了一个变量
Initcity(&L); // 希望在函数里面改变L的值,即给L赋值为一段内存的首址,所以传地址
你也可以用这种写法:
Linkcity L = Initcity();
Linkcity Initcity(){
Linkcity L = malloc();
do_init();
return L;
}
基础很重要!!!!!!
大哥 我觉得你这段代码有问题呢 L是一个局部的变量, 函数结束了L也就释放了,内容不可知
这样应该是有问题的, 你觉得呢??
[ 本帖最后由 smallstar001 于 2009-5-30 11:33 编辑 ] |
|