当我意识到我对指针有很大的误解时,我正在解决一些编程练习.请有人解释一下这段代码导致C++崩溃的原因.
#include <iostream>
int main()
{
int* someInts = new int[5];
someInts[0] = 1;
someInts[1] = 1;
std::cout << *someInts;
someInts++; //This line causes program to crash
delete[] someInts;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
PS我知道没有理由在这里使用"new",我只是尽可能地使用这个例子.
有谁知道在C++中使用调试器的好初学者教程?
我觉得我好像错过了很多.我知道如何单步执行代码并查看局部变量(尽管通常这会导致我出现问题,但有时它似乎有自己的想法!).
其他所有内容(调用堆栈,运行线程等)对我来说都没有任何意义,我还没有可以解密的后向跟踪(与后面跟踪始终指向代码中的某些功能时的分段错误的示例问题不同! ).基本上我没有更好的只是插入cout语句,这通常是我最终做的:)
我正在使用Code :: Blocks但是如果有一个非常好的教程,我愿意暂时更改IDE来学习调试器.我找到的教程或者只是解释了如何逐步完成我已经知道的代码,或者它们是非常全面地解释一切,这对于我的小脑子而言是压倒性的,在这个阶段并不是真的必要.