c++高手帮帮忙。void del 函数有问题。

[复制链接]
查看11 | 回复1 | 2010-12-18 17:07:16 | 显示全部楼层 |阅读模式
#include
#include
using namespace std;
void creat(int **&,int ) ;
void output (int ** ,int );
void del ( int **&, int **& , int ) ;
int maindiagonal(int **, int ) ;
int main()
{
int n ,i,**ap=NULL, **bp=NULL;
cout>n ;
while (n>n ;
}
creat ( ap,n) ;
couti;j++)
{

arr[j]=1;
}
for(k=i+1,j=0;j<i+1;k--,j++)
{

arr[j]=k;
}
}

}
void output ( int **arr, int n)
{
int i,j ;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)

cout<<setw(4)<<arr[j];
if (j==n) cout<<endl;
}
}
void del ( int **&arr1, int **&arr2, int n)
{
int i ,j;
arr2=new int*[n-2];
for (i=0;i<n-2;i++)
{
arr2=new int [n-2] ;
}
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
arr2[j]=arr1[i+1][j+1] ;
}
}
}
int maindiagonal (int **arr, int n)
{
int i,sum=0;
for(i=0;i<n;i++)
{
sum+=arr ;
}
return sum ;
}
调试的时候arr2[j]=arr1[i+1][j+1]这里提示“中的 0x00b41b8a 处未处理的异常: 0xC0000005: 写入位置 0xfdfdfe01 时发生访问冲突”。

回复

使用道具 举报

千问 | 2010-12-18 17:07:16 | 显示全部楼层
这个很明显是越界了 因为无法知道你程序用意 也不便修改 看来下 你新建的是n-2介矩阵 你却用的i<n j<n 肯定越界哈 你自己改改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行