Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        4年前关闭。
                                                                                            
                
        
我有2x2矩阵。我想检查此矩阵是否对称。当我将此功能添加到代码中时,


  .exe文件已停止工作错误。


我该如何解决这个问题?有人能帮我吗?

void Array::symetrical_square_control()
{
        square2by2=new int*[4];
        int var2=0, var=0,i,k,l,j;

     for( i=0, l=var2 ;i<2 , l<var2+rowsize ;i++,l++)
    {
        for( j=0 , k=var ; j<2, k<var+2 ;j++,k++)
        {
            altkare2[i][j]=matris[l][k];
        }

        if(i==1)
        {
            var++;
            if(var==rowsize-1)
            {
                cout<<endl;
                for(int x=0;x<2;x++)
                {
                    cout<<endl;
                    for(int y=0;y<2;y++)
                    {
                        cout<<square2by2[x][y];

                    }
                }
                var = 0;
                i-=2;
                l-=1;
                if(l==rowsize+1)
                {
                    break;
                }
            }
            else
            {
                i-=2;
                l-=2;
                cout<<endl;
                for(int x=0;x<2;x++)
                {
                    cout<<endl;
                    for(int y=0;y<2;y++)
                    {
                        cout<<square2by2[x][y];

                    }
                }

            }

        }
    }

}`

最佳答案

您永远不会在square2by2中创建数组。它们需要分别用new初始化。当您执行cout<<square2by2[x][y];时,该程序没有要引用的有效内存地址,因此会遇到分段错误/访问冲突。

编辑:初始化square2by2

square2by2 = new int* [2];
square2by2[0] = new int[2];
square2by2[1] = new int[2];


但是,我看不到您对square2by2所做的操作-在不首先将其设置为某些值的情况下打印其值。我假设square2by2实际上是指其他矩阵变量之一(即altkare2matris

关于c++ - 如何解决此错误:.exe文件已停止工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33578066/

10-11 15:24