0

我正在使用一个程序执行另一个程序。在这种情况下,这是选择排序的.exe。因此,主要程序通过传递主程序中生成的数组来调用EXE。选择排序EXE执行时,有一个错误,说访问违规读数location.I'll把exe的代码。

'min=array[i];' 行中出现错误

    int _tmain(int *array,int length)
    {
    int i,j,min,minLoc;

    for(i=0;i<(length-1);i++)
    {
        minLoc=i;
        min=array[i];

        for(j=i+1;j<(length);j++) //select the min of the rest of array
        {
            if(min>array[j])   //ascending order for descending reverse
            {
                minLoc=j;  //the position of the min element 
                min=array[j];
            }
        }

        int temp=array[i] ;
        array[i]=array[minLoc];  //swap 
        array[minLoc]=temp;

        for(int i=0;i<10;i++)
            cout<<array[i]<<endl;

        //return 1;
      }

        delete []array;

   return 0;
   }
4

1 回答 1

0

您的代码中有两个问题。第一个是,您的数组中必须至少有 10 个元素,以便您在最后执行的日志记录不会使您的程序崩溃。第二个是您删除了在其他地方分配的数组。这通常是有问题的,并且可能是错误的原因。您应该查找在可执行文件之间传递的内存。

于 2013-06-12T08:20:57.603 回答