本文共 760 字,大约阅读时间需要 2 分钟。
#include#include int* Pool(int array[],int size) { int *x; int i=0; int a[2]={0,1}; for(i=0;i
这样,你已经学会了如何使用数组和指针从C函数中返回多个值。在很多情况下你会发现这个技巧很有用。
其实上面的用法是有问题的,在C语言中绝不能返回函数内局部变量的地址。
在c语言中,一种典型的错误就是将一个指向局部变量的指针作为函数的返回值。由于该数组是局部变量,因此在函数返回时其数组空间已经作废了,即指针应用一块无意义的地址空间,所以不会有返回值。
如果得到正常的值,只能是幸运的
退出函数的时候,系统只是修改了栈顶的指针,并没有清内存;
所以,是有可能正常访问到局部变量的内存的。 但因为栈是系统自动管理的,所以该内存可能会被分配给其他函数,这样,该内存的内容就会被覆盖;不再是原来的值了。得到的结果跟上面就不一样了
转载地址:http://imxxi.baihongyu.com/