我在 C++ 程序中遇到堆栈溢出异常
Posted
技术标签:
【中文标题】我在 C++ 程序中遇到堆栈溢出异常【英文标题】:I'm getting a stack overflow exception in C++ program 【发布时间】:2012-12-10 22:44:24 【问题描述】:我得到一个 system.*** 异常。
我认为它发生在 insert()
函数内部的某个地方。
void insert(char* word)
int r1 = rand()%x; // Here is where I suspect the problem starts
int c1 = rand()%x;
if(gameBoard[r1][c1]=="")
gameBoard[r1][c1] = word;
insertWordCopy(word);
else
insert(word);
【问题讨论】:
将您的代码缩减到最低限度以重现或失败,显示哪一行是81
,这会很有帮助。
哇...只是转储你的整个程序并说,“怎么了?”在这里不会很好用。
您是否使用调试器单步执行代码?
“第 81 行附近”,您希望我们开始数数吗?您至少可以粘贴行号代码..
对不起,我不是打算在这里“转储”我的代码,我打算只放第 81 行块,但由于我不确定问题出在哪里,我认为最好的选择是把我的整个程序
【参考方案1】:
以下是不正确的,因为它比较了指针:
if(gameBoard[r2][c2]=="")
因此,代码几乎肯定总是沿着else
分支向下,导致无限递归。
【讨论】:
以上是关于我在 C++ 程序中遇到堆栈溢出异常的主要内容,如果未能解决你的问题,请参考以下文章