gpt4 book ai didi

c++ - 字符数组复制失败

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:46 25 4
gpt4 key购买 nike

我正在复制一个数组,由于某些原因,复制后的值不一样。代码如下。在这两种情况下,_data 变量都是一个 char[4]。复制后,断言触发。如果我在调试器中检查这两个值,它们显示为:0x00000000015700a80x00000000015700b0

_data[0] = rhsG->_data[0];

_data[1] = rhsG->_data[1];

_data[2] = rhsG->_data[2];

_data[3] = rhsG->_data[3];

assert(_data == rhsG->_data);

最佳答案

您错误地认为 C++ 是一种易于使用的高级语言(开玩笑)。 C 风格数组上的 operator == 比较它们的地址,当然这里是不同的。您可以使用 std::equal 来比较两个数组,或者使用支持更直观的 opeartor == 的不同数据结构,例如 std::数组std::vector

然后您还可以使用它们的 operator = 来复制它们,而不是一次一个地复制每个元素,假设源和目标的大小相同。如果不是,则有 std::copy,否则它们必须是 C 样式数组。

关于c++ - 字符数组复制失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28017170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com