-3
我有兩個全局變量COUNT=0;
和SIGN=0;
後來我#define SIZE 100
插入排序分段錯誤
我不斷收到在我的代碼賽格故障,但我也不太清楚的地方,如果你們能幫助別針把它下來我會很感激。
它應該打印出插入從txt文檔讀入的數據時進行的分配總數。我不確定我是否理解什麼是任務,但這是我的失敗。
void insert(int x[], int n){
int key,y,z;
COUNT++;
for(z=1; z<n-1; z++){
key=x[z];
SIGN++;
for(y=(z-1); y<0||key>=x[y]; y--){
x[y+1]=x[y];
SIGN++;
}
x[y+1]=KEY;
}
int main(){
FILE *fp;
fp=fopen("data.txt","r");
int #temp;
int i=0;
int *sort=NULL;
sort=(int *)malloc(SIZE*sizeof(sort));
while(fp!=NULL){
fscanf(fp, "%d", temp);
sort[i]=(int)temp;
i++;
}
insert(sort, SIZE);
printf("number of Assignments=%d", SIGN);
return 0;
}
你沒有在調試器中試過這個,是嗎? – 2014-11-05 18:17:50
可能甚至沒有編譯... – mafso 2014-11-05 18:18:36
我嘗試在valgrind中運行它,但它說我與fscanf的權限不好,而且我分配了兩次,但沒有釋放 – Wingman 2014-11-06 01:25:49