【问题标题】:Copying a certain number of characters from one pointer to another将一定数量的字符从一个指针复制到另一个
【发布时间】:2019-04-15 15:45:25
【问题描述】:

我有一个源指针 (pSource) 和一个目标指针 (pGoal)。我还有一些字符(n)需要从pSource 复制到pGoal。我怎样才能做到这一点?

我认为我可以将 pSource 中的内容复制到 pGoal 并将两个指针移动到下一个位置。 (两者都指向开头的开头)。

for (int i = 0; i < n; i++) {
     pGoal+i = pSource+i;
}

【问题讨论】:

  • *(pGoal+i) = *(pSource+i);pGoal[i] = pSource[i];
  • 我很确定您在代码中收到了很多编译器警告。注意那些——他们是你的朋友。

标签: c string pointers char


【解决方案1】:

假设您的指针是char * 类型,正确的做法是:

for (int i = 0; i < n; i++) {
    *(pGoal+i) = *(pSource+i);
    // or pGoal[i] = pSource[i]
}

您也可以查看memcpy

【讨论】:

  • 它一直有效,直到我的 n
  • @Sanlyn,是的。您应该始终检查缓冲区的限制以避免错误。
  • 那么如果 n 大于 pSource 中的字符串,我怎样才能使它仍然有效。我需要用 '\0' 完成每个 pGoal 副本。
  • 发布更多代码会很有用。我可以建议的一种方法是将n 初始化为pSource 的长度,并为pGoal 分配足够的内存。
猜你喜欢
  • 2021-02-07
  • 2020-12-07
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
  • 2018-04-16
  • 2019-09-27
  • 1970-01-01
  • 2015-04-04
相关资源
最近更新 更多