读书人

C语言 新手初学者麻烦帮忙看看这样把

发布时间: 2012-05-02 15:36:04 作者: rapoo

C语言 新手菜鸟求助:麻烦帮忙看看,这样把数组地址赋给指针地址 对不对?
int *number;

void assign_number(int length)
{
int temp[length];
number=temp;
}

[解决办法]
对的。。
[解决办法]
对.
因为数组名可以退化成指针
[解决办法]
对是对的,可是有个问题你要注意了。你的数组定义在局部函数中,内存空间位于栈空间上,待函数周期结束后数组就被释放了。所以你得到的地址就没有用了。
[解决办法]
对啊,这相当于把数组的首地址赋值给number了~~
[解决办法]

探讨

引用:

对是对的,可是有个问题你要注意了。你的数组定义在局部函数中,内存空间位于栈空间上,待函数周期结束后数组就被释放了。所以你得到的地址就没有用了。

请问有什么办法能让number一直能指向有效的地址呢?

[解决办法]
int *number;

void assign_number(int length)
{
static int temp[length];
number=temp;
}
[解决办法]
赋值是对的,只是你获取的数组首地址,再该函数调用结束后就会被编译器自动释放。在函数外面使用时无效的。

读书人网 >C语言

热点推荐