我正在使用一个程序来执行另一个程序。在这种情况下,它是一个选择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;
}
答案 0 :(得分:0)
您的代码中存在两个问题。首先,您的数组中必须至少有10个元素,以便您最后执行的日志记录不会导致程序崩溃。第二个是删除在别处分配的数组。这通常是有问题的,可能是错误的原因。你应该看看在可执行文件之间传递内存。