exit code非0什么意思C语言,c++程序出现exit code -1073740940 (0xC0000374)

一道动态规划的算法题.

dp是我用new关键字分配的一个整形数组用来记录转移量,在程序51行使用"delete []dp;"去释放内存

出现exit code -1073740940 (0xC0000374)的错误,用的是gnu++11

#include

#include

using namespace std;

vector get_divisor(int num)

{

vector vec;

for (int i = 2; i < num; ++i) {

if (num % i == 0) {

vec.push_back(i);

}

}

return vec;

}

int max_step(int v_start, int v_end)

{

if (v_start >= v_end) {

return -1;

}

int start = v_start;

int end = v_end;

int rslt;

int *dp = new int[end - start + 1];

//初始化所有dp内的元素

for (int i = start; i <= end; ++i) {

dp[i] = 0;

}

vector vec;

for (int i = start; i <= end; ++i) {

vec = get_divisor(i);

//如果向量为空,说明在该步不存在约数,无法到达end

if (vec.empty()) {

dp[i] = 0;

} else {

vector::iterator iter;

for (iter = vec.begin(); iter != vec.end(); ++iter) {

if (dp[i + (*iter)] == 0) {

dp[i + (*iter)] = dp[i] + 1;

} else {

dp[i + (*iter)] = (dp[i] + 1) > dp[i + (*iter)] ? dp[i + (*iter)] : dp[i] + 1;

}

}

vec.clear();

}

}

rslt = dp[v_end];

delete []dp;

return rslt;

}

int main()

{

int rslt = max_step(4, 24);

cout<

}

按理说我动态申请的数组在使用最后delete应该是没问题的吧,但不知道为什么会出现这个错误,还请指教

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值