读取数组中的访问冲突读取位置

时间:2013-06-12 08:07:41

标签: c++

我正在使用一个程序来执行另一个程序。在这种情况下,它是一个选择sort的.exe。主程序通过传递主程序中生成的数组来调用exe。当选择sort exe执行时,会出错访问违规阅读位置。我会把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;
   }

1 个答案:

答案 0 :(得分:0)

您的代码中存在两个问题。首先,您的数组中必须至少有10个元素,以便您最后执行的日志记录不会导致程序崩溃。第二个是删除在别处分配的数组。这通常是有问题的,可能是错误的原因。你应该看看在可执行文件之间传递内存。