gpt4 book ai didi

C++ 堆栈溢出错误

转载 作者:行者123 更新时间:2023-11-30 02:02:35 26 4
gpt4 key购买 nike

我试图让自己习惯于在 C++ 中使用动态数组,现在我已经像今天第十次那样被困住了。该程序编译正常,但在接受输入后出现堆栈溢出错误,并且我在构造函数中提供了删除堆的功能,我假设我有一个未初始化的变量,但我真的找不到它。希望大家帮我查一下。这是代码:

#include<string>
#include<cmath>
#include<sstream>
using namespace std;
#include"Calc.h"
#include<iostream>
using namespace std;

Calc::Calc(int a, int*b){
length=a;
ar=b;
AR =new int*[length];


for (int i=0; i<length;i++){
AR[i] = new int [ar[i]]();
}

for (int i = 0; i < length; i++)
delete[] AR[i];
};

Calc::~Calc(){};

int Calc::solveFor(int m0, int n0){
int ans=0;
if (m0=0) {ans =n0+1; AR[m0][n0]=ans; return n0+1;}
if (n0=0) {ans= solveFor(m0-1,1); AR[m0][n0]=ans;return ans;}
else {ans=solveFor(m0-1, solveFor(m0, n0-1));AR[m0][n0]=ans; return ans;}
};



void Calc::getSolved(){
for(int i=0; i<=length; i++){cout<<endl;
for (int j=0; j<ar[i]; j++)
cout<<"ACK ["<<i<<","<<j<<"]="<<AR[i][j]<<" ";}
cout<<endl;


};

Run.cpp:

#include<iostream>
#include<string>
#include "Calc.h"

using namespace std;

int main() {
int m;
int n;
int v[6]= {7, 7, 7, 7, 7, 7};
Calc XXX(6, v);
cin>>m;
cin>>n;


XXX.solveFor(m,n);
XXX.getSolved();

return 0;
}

提前致谢。

最佳答案

我在 Calc::solveFor 中看到的一个问题是您使用赋值运算符代替相等性:

if (m0=0)

应该是

if (m0==0)

关于C++ 堆栈溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13043309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com