【发布时间】:2014-11-05 18:14:03
【问题描述】:
我有两个全局变量 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;
}
【问题讨论】:
-
你没有在调试器中尝试过,是吗?
-
可能连编译都没有……
-
我尝试在 valgrind 中运行它,但它说我对 fscanf 的权限不好,并且我分配了两次但没有释放
-
@Wingman 好吧.. 这就是问题所在!
-
你最喜欢的调试器会告诉你段错误发生在哪里。
标签: c segmentation-fault insertion-sort