错误日记 函数返回数组

来源:互联网 发布:外卖电话软件 编辑:程序博客网 时间:2024/05/16 18:08
错误程序
main(){int a[6] = {0},i = 6;a = array(i);}int * array(int i){int n, a[10];for(n = 0;n < i; n++)a[n] = n; 
        return a;}

语法没有错误

运行程序后a[6]还是值均为0 的数组。


出错原因:

局部变量在函数返回后自动释放所占的内存,此时系统返回的是一个任意的内存地址。


正确的做饭是把想要得到的数组作为实参传入函数,再让函数对该数组进行修改。

修改程序:

main(){int a[6] = {0},i = 6;array(a, i);}int * array(int * a, int i){int n;for(n = 0;n < i; n++)a[n] = n; }
得到正确的结果





原创粉丝点击