【发布时间】:2013-09-10 01:50:35
【问题描述】:
您好,我正在尝试使用 std::copy() 函数来复制二维数组。我想知道是否可以这样做!我不断收到“分段错误”,但数组被正确复制。我已经尝试在复制功能的末尾减去一些并添加一些,但没有成功。
const int rows = 3;
const int columns = 3;
int myint[rows][columns]={{1,2,3},{4,5,6},{7,8,9}};
int favint[rows][columns];
std::copy(myint, myint+rows*columns,favint);
很明显“myint+rows*columns”是不正确的,事实证明这个值对应于整行,因此“myint+rows*columns=1”意味着它将复制整个第一行。如果 "myint+rows*columns=2" 它复制前两行等。有人可以为我解释一下这个操作吗?
【问题讨论】:
-
这段代码在我的机器上运行得非常好。您确定是您的这部分代码导致了分段错误吗?