Hello all! This one of my programe, when it is running, a warning that" 0xC00000FD: Stack overflow"!Can you help me!Thank you! #include "stdafx.h" #include<stdio.h> #include<stdlib.h> #include<time.h> void makemerge(int *, int *); void disresult(int *queue, int *front, int *rear); void enqueue( int *queue, int n, int *rear, int data); int dequeue(int *queue, int *front, int *rear); int n1,n2; FILE *output; int main() { int s1[101]={0}; int s2[101]={0}; int i,j,r; output=fopen("1.dat", "w"); srand(time(NULL)); n1=rand() % 100+1; n2=rand() % 100+1; for (i=0; i<n1; i++) s1[i]=rand() % 100; for (i=0; i<n2; i++) s2[i]=rand() % 100; for (i=0; i<n1; i++) for (j=i+1; j<n1; j++) if (s1[i]>s1[j]) { r=s1[i]; s1[i]=s1[j]; s1[j]=r; } for (i=0; i<n2; i++) for (j=i+1; j<n2; j++) if (s2[i]>s2[j]) { r=s2[i]; s2[i]=s2[j]; s2[j]=r; } for (i=0; i<n1; i++) fprintf(output, "%d ", s1[i]); fprintf(output,"\n\n"); for (i=0; i<n2; i++) fprintf(output,"%d ", s2[i]); fprintf(output,"\n\n"); makemerge( s1, s2 ); fclose(output); system("pause"); return 0; } void makemerge(int *s1, int *s2) { int *sq1=s1, *sq2=s2, *tq; int fq1=0, rq1=n1, fq2=0, rq2=n2, ft=0, rt=0; int n=n1+n2,data; tq=(int*)malloc(n*2); while ((fq1<rq1) && (fq2<rq2)) { if (*(sq1+fq1)<*(sq2+fq2)) data=dequeue(sq1, &fq1, &rq1); else data=dequeue(sq2, &fq2, &rq2); enqueue(tq, n, &rt, data); } if (fq1==rq1) { while (fq2<rq2) { data=dequeue(sq2, &fq2, &rq2); enqueue(tq, n, &rt, data); } } if (fq2==rq2) { while (fq1<rq1) { data=dequeue(sq1, &fq1, &rq1); enqueue(tq, n, &rt, data); } } disresult(tq, &ft, &rt); } int dequeue(int *queue, int *front, int *rear) { int data; if ( *rear==*front ) { printf("出队错误!"); exit(-1); } data=*(queue+*front); *front=*front+1; return data; } void enqueue(int *queue, int n, int *rear, int data) { if (*rear>=n) { printf("入队错误!"); exit(-1); } *(queue+*rear)=data; *rear=*rear+1; } void disresult(int *queue, int *front, int *rear) { while( *front<*rear) { fprintf(output,"%d ", *(queue+*front)); *front=*front+1; } }
[Non-text portions of this message have been removed]