C++ 我在使用EclipseCDT调试器时遇到一个问题,它会在第一次printf时停止

C++ 我在使用EclipseCDT调试器时遇到一个问题,它会在第一次printf时停止,c++,c,eclipse-cdt,C++,C,Eclipse Cdt,我试图调试一个合并到有序一维数组的程序,合并函数没有按预期运行,我想使用调试器来解决问题,但当我跳过指令时,调试器似乎挂在第一个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); vo

我试图调试一个合并到有序一维数组的程序,合并函数没有按预期运行,我想使用调试器来解决问题,但当我跳过指令时,调试器似乎挂在第一个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);

    ....
在控制台上尝试输入5之后,什么也没有发生,并且步进功能变灰。尝试使用
fflush(stdout)
会导致类似的行为,它只是挂在
fflush
函数上


有什么问题吗?

您的函数工作出了问题,因为您没有展示函数的工作,没有人能够分辨出问题所在。
获取输入后,值将被发送到函数,直到该点为止,根据您的解释,它可以正常工作,因此函数工作中存在一些编译器无法理解的错误。

它不会挂起。它正在等待输入!!!与您的问题无关,但请记住您的问题的最小部分。几乎没有显示的代码与问题有关。此外,请注意C和C++是不同的语言。只标记您实际使用的语言。Eclipse的控制台不是真正的终端。我不确定当前状态,或者您正在使用的版本的状态,但您可以考虑提供输入或调试的另一种方式。
Enter length of first series N <= 20 *stopped,reason="end-stepping-range",frame={addr="0x00401455",func="main",args=[],file="..\main.cpp"....