C++内存指针练习中的未知崩溃

0 c++ crash pointers

我最近编写了一个程序来帮助我理解C++中内存指针的基础知识,我选择了一个简单的素数查找器.

我终于开始工作了.(对于调试!)

我让它跑去看它走了多远,它得到了#815389,我的详细告诉我是65076的素数,我得到了一个应用程序崩溃.我能想到的一件事是我的注意力溢出,所以我把它们变成了多头,它被困在同一个地方.

有人能够帮助解释造成这种限制的限制吗?

comp:WinVista 64位家庭高级版,6GB内存AMD 4800+ X2程序崩溃,内存使用量为4,664K

资源:

#include <cstdlib>

#include <iostream>

\\\\(Backslashes added for readability)

using namespace std;

long number;
long numnum;

class num;

class num {

  public:

         long i;
         void check();
         bool nxt;
         num* nxtnum;
};

void num::check() {

 if (number % i != 0) {
            if (nxt == true) {
                    (*nxtnum).check();
            } else {
                   nxtnum = new num();
                   (*nxtnum).i = number;
                   numnum++;
                   cout << numnum << ":" << number << ", ";
                   nxt = true;
            };
 };
};


int main(long argc, char *argv[]){

  numnum = 1;
  cout << numnum << ":" << 2 << ", ";
  num two;
  two.i = 2;
  for (number = 3; 1<=1000001; number++) {
    two.check();
  };
  cout << endl;
  system("PAUSE");
  return EXIT_SUCCESS;
};
Run Code Online (Sandbox Code Playgroud)

(没关系用户名,它只是我使用的别名,所以我可以跟踪谷歌的所有帖子)

Jef*_*tes 7

堆栈溢出?我看到这check是递归的.