C++帮我看看代码有什么问题吗


int* Array(int len){
    int *arr=NULL;
    arr=new int [len];
    return arr;
}
int** Reshape(int* vec, int row, int col){
    int **a=NULL,k=0;
    a=new int *[row];
    for(int i=0;i<col;++i){
        a[i]=new int [col];
    }
    for(int i=0;i<row;++i){
        for(int j=0;j<col;++j){
            a[i][j]=vec[k++];
        }
    }
    return a;
}
void FreeArray(int* vec){
    delete[] vec;
}
void FreeMatrix(int** mat, int row){
    for(int i=0;i<row;++i){
        delete[] mat[i];
    }
    delete[] mat;
}

第一个函数是创建一个一维数组,第二个是将原来的一维数组变成row×col的矩阵,第三个是delete一维数组,第四个是delete二维数组
题目已给代码

#ifndef FUNCTION_H
#define FUNCTION_H

int* Array(int);                            
int** Reshape(int*, int, int);  
void FreeArray(int*);
void FreeMatrix(int**, int);

#endif


#include "check.h"
// #include <iostream>
#include <stdio.h>
#include "functions.h"

int main() {
    int* vec = nullptr;
    int len, row, col;
    scanf("%d", &len);  
    vec = Array(len);
    for (int i = 0; i < len; ++i) {
        scanf("%d", vec + i);   
    }
    int** mat = nullptr;
    scanf("%d%d", &row, &col);
    mat = Reshape(vec, row, col);
    for (int i = 0; i < row; ++i) {
        for (int j = 0; j < col; ++j) {
            printf("%d%c", mat[i][j], j == col - 1 ? '\n' : ' ');
        }
    }
    FreeArray(vec);
    FreeMatrix(mat, row);
    return 0;
}

题目测试的时候,输入下面的数据无输出

img

就函数来说没啥问题,至于外面调用逻辑上的问题就没法判断了。你出什么状况了?