【问题标题】:(CAPL) I want to assign same values in the specific array. how can I use "memcpy"?(CAPL) 我想在特定数组中分配相同的值。我如何使用“memcpy”?
【发布时间】:2023-01-19 18:13:41
【问题描述】:

我是 CAPL 的新手。我想制作具有相同值 (3) 的 int 数组。 下面没问题..(没有错误) 但是,如您所见,这太复杂且难以更改数组值。

整数 [102] =
{3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 , 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3};

我认为这可行,但事实并非如此。

整数 b = 2; int a[102] = memcpy(a, b, elCount(a));

如何分配具有相同值的 int 数组?

先感谢您。

【问题讨论】:

    标签: capl


    【解决方案1】:

    CAPL 中没有memcpy。 C 中的 memcpy 也没有像您所期望的那样。

    memcpy 将一定数量的字节从某个内存区域复制到您的目的地。因此,为了能够像您的示例一样复制3s 的列表,您需要有一个包含 102 3s 的内存区域。这让你重新开始。


    为什么不使用简单的 for 循环?

    int a[102];
    for(int i=0; i<eclount(a); i++) {
      a[i] = 3;
    }
    

    只有一个地方可以更改值。 如果你愿意,你甚至可以将它包装在一个 CAPL 函数中,并将 a 和值作为参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      相关资源
      最近更新 更多