C++中debug error如何解决?

源代码:BigIntsynSign(BigInt&bi){BigIntresult;intk=bi.m_nN;if(bi.m_pNum[bi.m_nN-1]>0){for... 源代码:
BigInt synSign(BigInt &bi)
{ BigInt result;
int k=bi.m_nN;
if(bi.m_pNum[bi.m_nN-1]>0)
{
for(int i=0;i<bi.m_nN-1;i++)
{
if(bi.m_pNum[i]<0)
{
bi.m_pNum[i]=bi.m_nRadix+bi.m_pNum[i];
bi.m_pNum[i+1]-=1;
}
}
}
else
{
for(int j=0;j<bi.m_nN-1;j++)
{
if(bi.m_pNum[j]>0)
{
bi.m_pNum[j]-=bi.m_nRadix;
bi.m_pNum[j+1]+=1;
}
}
}

while(bi.m_pNum[k-1]==0)
k--;
bi.m_nN=k;

result.m_nN=bi.m_nN;
result.m_nCapacity=bi.m_nCapacity;
result.m_pNum=new int[result.m_nCapacity];

for(int l=0;l<result.m_nN;l++)
result.m_pNum[l]=bi.m_pNum[l];

return result;

}
一调试就有:heap corruption detected;
after normal block(#152)at Ox003b8a08
crt detected that the application wrote to memory after end buffer
请问应该怎么解决?
展开
 我来答
hanwt139
2009-04-10 · TA获得超过843个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:715万
展开全部
the application wrote to memory after end buffer

写的这么清楚了:应用程序向数组后的内存进行了写操作。
数组越界
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者WYzZrm2FE3
2020-02-07 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.5万
采纳率:27%
帮助的人:1029万
展开全部
int
a[1]
??!!
for(int
i=0;i
>x;
if(x!=0){
a[i]=x;
这里a[i]是多个变量,你一个a[1]怎么够?!!
至少要大于m个啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忘至白葬不情必0T
2009-04-10 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
一般是数组越界吧,你仔细检查下程序中用到new,delete的地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式