【发布时间】:2013-10-21 01:54:15
【问题描述】:
代码在pastebin上:http://pastebin.com/UknqKvMq
所以,我正在置换 0、1、2、3、4、5、6、7、8、9 的所有可能排列(即形成 10 位数字)。我通过调用将每个排列存储在堆上
new int[10]
返回的指针我推到一个
static vector<int*>
现在,当我将指针推到向量上时,第一项指向的数据正在被修改(可能还有向量指向的所有其他项)。我在代码中有许多打印语句显示了这一点,并调用了 sleep() 来减慢进程。为什么会这样?
【问题讨论】:
-
为什么首先使用整数“数组”,为什么不始终使用向量?
-
@JoachimPileborg 我猜是习惯。
-
@john 解释一下?我对指针很满意,看不出问题。
-
@FluidicTapestry 我赌一分钱,错误是由指针使用引起的。
-
@john 但究竟如何?请对你们进行建设性的工作。
标签: c++ heap-memory stdvector overwrite