问题描述
我正在尝试调试合并到有序一维数组的程序,合并功能未按预期运行,我想使用调试器解决问题,但是当我跨过指令时,调试器似乎挂在第一张printf上。
这是我的代码:
#include <stdio.h>
void input(int * array,int length);
void sort(int * array,int length);
int * merge(int * array1,int * array2,int a,int b,int * merged);
void output(int * array,int length);
int main(void){
setvbuf(stdout,NULL,_IONBF,0);
int N,M,n[20],m[20],merged[40];
printf("Enter length of first series N <= 20 ");
scanf("%d",&N);
input(n,N);
sort(n,N);
output(n,N);
....
Enter length of first series N <= 20 *stopped,reason="end-stepping-range",frame={addr="0x00401455",func="main",args=[],file="..\main.cpp"....
在尝试在控制台上输入5之后,什么也没有发生,并且“越过”功能显示为灰色。尝试使用fflush(stdout)
会导致类似的行为,只是挂在fflush
函数上。
可能是什么问题?
解决方法
您的函数工作中有问题,因为您没有展示函数的工作,因此没人能告诉您什么地方出了问题。 接受输入后,根据您的解释将值发送到函数,直到可以正常工作为止,因此在函数工作中会出现编译器无法理解的错误。