
我一个程序在TC 2.0里面一运行就死循环,在VC 6.0里面运行正常,这是怎么回事?
1个回答
展开全部
tc的环境是16bit的,也就是说tc编译的是16位的程序,而vc却是32位的. 具体区别就是一些基础类型的长度问题,比如int 在tc里,int为2byte,vc里却为4byte 这种区别就有可能会出问题.具体就要看你的代码怎么处理的了 追问: 有什么解决的方法吗?我把代码贴出来吧。。 # include<stdio.h> # include<stdlib.h> void in(char a[3][10]); void fq(char a[3][10],int m,int g); void out(char a[3][10]); void read(char a[3][10],FILE *fp); void write(char a[3][10],FILE *fp); void main() { char a[3][10]; int i; FILE *fp; if((fp=fopen("d:\\yl.txt","r+"))==NULL) { printf("can't open file\n"); exit(1); } while(!0) { printf("\n1.Input\n2.write\n3.read\n4.exit\n"); printf("Please input the function you want:"); scanf("%d",&i); getchar(); switch(i) { case 1: in(a);break; case 2: write(a,fp);break; case 3: read(a,fp);break; case 4: exit(0); default: printf("Wrong number."); } } fclose(fp); } void in(char a[3][10]) { int i; printf("Please input:\n"); for(i=0;i<=2;i++) gets(a[i]); printf("Please check:\n"); for(i=0;i<=2;i++) puts(a[i]); out(a); } void fq(char a[3][10],int m,int g) { int k; switch(m) { case 2: { k=1;printf("%d",k);} break; case 4: { k=4;printf("%d",k);} break; case 3: { k=7;printf("%d",k);} break; case 7: { k=8;printf("%d",k);} break; case 5: { if(a[1][g]=='|') { k=5;printf("%d",k);} else if(a[2][g+2]=='|') { k=3;printf("%d",k);} else { k=2;printf("%d",k);} } break; case 6: { if(a[1][g+1]=='_') { if(a[1][g+2]=='|') { k=9;printf("%d",k);} else { k=6;printf("%d",k);} } else { k=0;printf("%d",k);} } break; default: printf("error"); } } void out(char a[3][10]) { int m=0, i, j, g=0; printf("The number is:"); for(g=0;g<=6;g+=3,m=0) { for(i=0;i<=2;i++) for(j=g;j<=(g+2);j++) if(a[i][j]=='_'||a[i][j]=='|') m++; fq(a,m,g); } } void read(char a[3][10],FILE *fp) { int i, j; char s[11]; for (i = 0; i <= 2; i ++) { fgets(s, 11, fp); for (j = 0; j < 9; j ++) a[i][j] = s[j]; a[i][9] = '\0'; puts(a[i]); } out(a); } void write(char a[3][10],FILE *fp) { int i; for(i=0;i<=2;i++) { gets(a[i]); fputs(a[i],fp); fputc('\n',fp); } } 回答: 代码太长了..而且我没有tc没办法看.. 你可以自己下一个 断点 单步调试 ,看在哪个地方 死循环 了,然后看看循环变量的变化一般就能清 楚原 因了... 另外,函数参数不建议用 数组 ,最好用指针代替.
求采纳
求采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询