1
在for循環中聲明和使用向量有沒有任何已知的堆損壞問題?比如這樣:在C++ for循環中使用向量堆錯誤?
for(int i = 0; i < N; ++i) {
std::vector<int> vec;
for(int j = 0; j < 3; ++j) {
vec.push_back(0); //-Initialize
}
...
...
}
假設你已經用某種合理的參數化了'std :: vector',那就沒問題。 –
對於堆錯誤和向量,我會假設你正在使用'vec [x]',其中'x'不是一個有效的索引。用'.at(x)'替換你的'[x]',或者使用assert來幫助找到問題。 –
你是說你實際上遇到堆腐敗?如果是這樣,這可能是由程序的完全不同部分中的內存損壞引起的。您向我們展示的片段看起來很好。 –