提问者:小点点

如何撤消函数所做的更改?


如果我在a[n]中有一个数组,并且我有一个函数以这个数组作为它的参数。这个函数接受数组,在数组中做一些更改,然后返回一个布尔值。我想做的只是,如果返回的值为false(原样返回数组),则撤消函数所做的更改。我怎样才能做到这一点呢?


共1个答案

匿名用户

在对数组进行更改之前,必须将数组复制到函数内部的本地数组中。因为数组是通过引用(作为参数)传递的。

return_type yourFunctionName(int a[n])
{
    int tmp_arr = a; //The input array will copy to the tmp_arr by this line.

    //Write your code by using the copied array

    // If you need to apply the array changes to input array if the return value is true 
    //then finally copy the copied array to input array
    a = tmp_arr;
}