当前位置: 首页 > 知识库问答 >
问题:

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

徐奇
2023-03-14

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


共有1个答案

吕宣
2023-03-14

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

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;
}
 类似资料:
  • 我正在尝试撤消自上次提交以来的所有更改。看过这篇文章后,我尝试了<code>git reset--hard。我回答说,头现在在18c3773…但当我查看我的本地源时,所有文件仍然在那里。我错过了什么?

  • FormEditor的每个页面都扩展了FormPage(即MyXMLFormPage扩展了FormPage)。 在FormEditor和实际XML文件之间,我维护的是JDOM模型。 此外,我还实现了脏标志处理。因此用户在表单编辑器中的输入将保存到JDOM中,直到用户按下Save按钮。当用户按下save按钮时,JDOM被写入/序列化到XML文件中。 null 有谁能给我提供关于如何在ForMedit

  • 我基本上有以下几点: 什么可能会导致这种情况?只有工具栏按钮不工作是如此奇怪。如果所有的撤消/重做机制都不起作用,我会感觉更好。

  • 我在画布上的撤消和重做操作有问题。我注意到,如果在Ondraw()方法中不使用canvas.drawbitmap,下面的代码可以工作,但是我需要绘制到位图,这样我就可以保存画布图像和加载图像。好心帮帮我。下面是我的代码。

  • Revert 命令可以撤消之前做过的某个提交。 练习 1,先查看一下项目的提交历史: → git log --oneline fb11f83 让 README.md 标题的首字母大写 0fd9dac 让标题微笑 7086650 添加 .gitignore b5773ad 设置相关资源文档标题 23f3c2b 添加相关资源文档 a454700 设置说明文档的标题 39975b3 初始化 “添加 .

  • 问题内容: 我的项目的一部分是编写一个文本编辑器,该文本编辑器用于键入一些规则,编译我的应用程序并运行它。编写编译器是结束并发布beta版。在最终版本中,我们必须将撤消和重做添加到文本编辑器中。我使用一个文件,并定期将其保存为文本编辑器。如何设计文本编辑器的撤消和重做?文件的持久性结构发生了什么变化? 问题答案: 您可以将操作建模为命令,并保存在两个堆栈中。一个用于撤消,另一个用于重做。您可以编写