【问题标题】:How do I replace a value between 2 arrays (C)如何替换 2 个数组之间的值 (C)
【发布时间】:2015-05-25 19:01:21
【问题描述】:

我正在尝试将完整数组的各个值复制到一个空数组中。我想知道我该怎么做?这是我尝试过的,基本上:

for (f = 0 ; f > *LargoM ; f++)
    {
        EntradaM[f] = men_cif[f];
    }

任何答案表示赞赏。谢谢。

编辑:这是完整的代码。发疯:

https://gist.github.com/Crawlingvx/dafb909cb3297d47a908

编辑 2:问题已回答,问题已解决。谢谢Ron Thompson

【问题讨论】:

  • 不清楚使用的变量表示什么。
  • *LargoM 是什么?如果你不断增加f,那最终会使f 的值大于*LargoM
  • 如果您知道要复制的字节数,只需使用 memcpy() 或 bcopy() 并传递相应 src 和 dst 数组的地址。
  • 我可以贴出实际完整的代码,但是很长。 “LargoM”只是一个带有特定值的变量。假设它表示您想要的任何整数。是的,增加“f”最终会使其大于“LargoM”。该程序编译没有任何问题,但它没有将“men_cif”的值复制到“EntradaM”中。我只是得到一堆无意义的符号
  • 请澄清您的问题并发布MCVE。鉴于您发布的有限信息,不可能知道您的错误在哪里。

标签: c arrays replace between


【解决方案1】:

规范的形式是这样的:

int myArray[3] = {1,2,3};
int copy[3];

for(int i = 0; i < 3; ++i) {
    copy[i] = myArray[i];
}

希望对您有所帮助。

请注意,通常当您使用i++ 时,中间退出条件将具有i &lt; variable

编辑:查看您的代码后,您会看到:for (int i = 0; i &gt; 20; i++)。这永远不会执行。将&gt; 切换为&lt; 或设置i-- 循环类型。

【讨论】:

  • 这基本上就是我正在做的。
  • @crawlingvx:不是这样。你有一个i &gt; 3 作为你的退出条件。这意味着循环永远不会执行。
  • 一个混蛋。在 264 行代码后被语法错误背叛。我现在看到了,非常感谢,也很抱歉我自己没能看到。
  • 哈哈,没什么大不了的,每个人都会遇到。
猜你喜欢
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 2019-07-10
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多