数组下标的无效类型 'int[int]'

invalit type 'int[int]' for array subscript

我正在尝试将 QBytearray 转换为 QVector

extern "C" {
    typedef struct {
        double **vertexes;
        int top_rows_vertexes;
        int top_column_vertexes;

        double **edges;
        int top_rows_edges;
        int top_column_edges;
    }MATRIX;

    int start_processing(const char * file_name, MATRIX *date);
}

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // сишная часть тут создаем структуру получаем имя файла и запускаем нашу сишную функцию
    MATRIX A;
    QString name = "../../test.obj";
    QByteArray str_name;
    str_name += name;
    int result = start_processing(str_name, &A);

    // тут наполняем массив 3Д координатами
    QVector<QVector3D> coords;

    for (int i = 0; i < A.top_rows_vertexes; ++i) {
        coords.append(QVector3D(A.top_rows_vertexes[0][0], A.vertexes[0][1], A.vertexes[0][2]));
    }

但是我得到一个错误。 “数组下标的类型 'int[int]' 无效” 我需要帮助。因为我刚学,请你解释得越简单越好。

我尝试将类型数组从双精度更改为浮点...它没有帮助

int top_rows_vertexes;

这是一个普通整数

A.top_rows_vertexes[0][0]

这里你试图索引一个整数,这显然是行不通的。

您可能想像其他情况一样索引到 vertexes

    coords.append(QVector3D(A.vertexes[0][0], A.vertexes[0][1], A.vertexes[0][2]));

但这也很可疑。大概你想在这里使用循环变量,所以也许

    coords.append(QVector3D(A.vertexes[i][0], A.vertexes[i][1], A.vertexes[i][2]));