C++ C++;在vscode上:Debug get error,但仍在运行不带Debug的运行代码

C++ C++;在vscode上:Debug get error,但仍在运行不带Debug的运行代码,c++,debugging,C++,Debugging,这是我的代码排序数组2D使用额外的数组或不使用。我像这样使用函数指针 int main() { input(); printf("Array 2D: \n"); output(); printf("After sorting: \n"); solve(sortWithoutUseExtraArr); output(); } 我的职责是: void sortWithoutUseExtraArr { ..... } void solve(void (*so

这是我的代码排序数组2D使用额外的数组或不使用。我像这样使用函数指针

int main() {

input();
printf("Array 2D: \n");
output();
printf("After sorting: \n");
solve(sortWithoutUseExtraArr);
output();
}
我的职责是:

void sortWithoutUseExtraArr { ..... }
void solve(void (*sort)()) {
    (*sort)();
}
当我在没有调试的情况下运行时。它运行得很好。但当我开始调试时。它得到错误:
函数'void solve()'的参数太多。

大家能给我解释一下吗。非常感谢你。 对不起,我的英语太差了

编辑:整个代码:

#include<stdio.h>

#define MAX 100

int a[MAX][MAX];
int row, column;

void input();
void output();
void sortArray1D();
void sortUseExtraArr();
void sortWithoutUseExtraArr();
void solve();

int main() {
    
    input();
    printf("Array 2D: \n");
    output();
    printf("After sorting: \n");
    solve(sortWithoutUseExtraArr);
    output();
    
}

void input() {

    printf("Nhap so hang: ");
    scanf("%d", &row);
    printf("Nhap so cot: ");
    scanf("%d", &column);
    for (int i = 0; i < row;++i)
    {
        for (int j = 0; j < column;++j)
        {
            printf("a[%d][%d] = ", i + 1, j + 1);
            scanf("%d",&a[i][j]);
        }
    }
    
}

void output() {
    for (int i = 0; i < row;++i) {
        for (int j = 0; j < column;++j) {
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    }
}

void sortArray1D(int arr[],int n) {
    for (int i = 0; i < n; i++) {     
        for (int j = i+1; j < n; j++) {     
           if(arr[i] > arr[j]) {    
               int temp = arr[i];    
               arr[i] = arr[j];    
               arr[j] = temp;    
           }     
        }     
    }    
}

void sortUseExtraArr() {
    int b[MAX * MAX];
    int n = 0;
    for (int i = 0; i < row;++i)
    {
        for (int j = 0; j < column;++j)
        {
            b[n] = a[i][j];
            ++n;
        }
    }
    
    sortArray1D(b, n);
    
    int d = 0;
    for (int i = 0; i < row;++i)
    {
        for (int j = 0; j < column;++j)
        {
            a[i][j] = b[d];
            ++d;
        }
    }
}

void sortWithoutUseExtraArr() {

    int n = row * column;

    for(int i = 0; i < n - 1; i++)
    {
        for(int j = i + 1; j < n; j++)
        {
            if(a[i / column][i % column] > a[j / column][j % column])
            {
                int temp = a[i / column][i % column];
                a[i / column][i % column] = a[j / column][j % column];
                a[j / column][j % column] = temp;
            }
        

}
    }
    
}

void solve(void (*sort)()) {
    (*sort)();
}
#包括
#定义最大值100
int a[MAX][MAX];
int行,列;
无效输入();
无效输出();
void sortArray1D();
void sortUseExtraArr();
void sortwithoutuse extrarr();
void solve();
int main(){
输入();
printf(“数组2D:\n”);
输出();
printf(“排序后:\n”);
解决(SortWithoutuseExtrarr);
输出();
}
无效输入(){
printf(“Nhap sohang:”);
scanf(“%d”行和第行);
printf(“Nhap so cot:”);
scanf(“%d”列和列);
对于(int i=0;iarr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=温度;
}     
}     
}    
}
无效sortUseExtraArr(){
int b[MAX*MAX];
int n=0;
对于(int i=0;ia[j/列][j%列])
{
int temp=a[i/列][i%列];
a[i/列][i%列]=a[j/列][j%列];
a[j/列][j%列]=温度;
}
}
}
}
void solve(void(*sort)(){
(*排序)();
}

你能从错误消息中发布更多的上下文吗?每个人都能解释我的观点吗?我想你需要显示更多代码来解释这个问题。你写非法的C++,至少你所发布的,显示一个最小的完整C++文件,问题是我得到的错误,我的源代码是: