我在网上找到的所有关于增加指针导致段错误的例子都涉及到了对指针的解引用 - 如果我只想增加它怎么办(例如在for循环的末尾),并且我不关心它最终是否处于无效内存中,因为我不会再次使用它。例如,在这个程序中,我只需要每次迭代步进4个,但是在最后一次迭代后我再也不会解引用这些指针。
float* leftRowPointer, resultRowPointer;
// assume they were correctly initialized
for (unsigned int i = 0; i < 4; ++i, leftRowPointer += 4, resultRowPointer += 4) {
// do some stuff
}
我需要做类似这样的事情吗?
for (unsigned int i = 0; i < 4; ++i) {
// same stuff
if (i != 3) {
leftRowPointer += 4;
resultRowPointer += 4;
}
}
有没有更好的方法来完成我所尝试做的事情?当我自己尝试时,似乎并没有发生什么不好的事情,但这并不能保证它总是有效的。不幸的是,我在工作中没有访问Valgrind或类似的工具。我们使用的是C++11标准,顺便说一下,我在里面找不到任何直接适用于此的内容,但我会第一个承认我不太了解标准,不知道从哪里查找相关内容。