数组下标的无效类型 '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]));
我正在尝试将 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]));