C ++ структура и концепция массива (-Wmissing-фигурные скобки])

0

Я пытаюсь сделать что-то вроде этого. У меня есть 3 файла заголовка

1. coordinates.h

typedef struct {
  float x;
  float y;
  float z;
}coordinates3D;

2.plane.h

#include "coordinates.h"
typedef struct{
    coordinates3D plane;
} plane3D;

3.pointArray.h
#include "plane.h"

plane3D points[] ={
    {1.0f,3.74f,0.2354f},
    {6.823f,9.234f,1.097f},
};

и файл cpp

4. main.cpp
#include "pointArray.h"
int main(int argc, char **argv)
{
    std::cout<<points[1].plane.x;
    std::cout<<points[0].plane.y;
}

Все работает нормально, но я получаю предупреждение

предупреждение: отсутствующие фигурные скобки вокруг инициализатора для 'координат3D' [-Сдвиги-брекеты]

Я не уверен, как решить это предупреждение...

Теги:
arrays
structure

1 ответ

3
Лучший ответ

Это из-за вложенных структур. Просто добавьте пару фигурных скобок вокруг значений:

plane3D points[] ={
    { { 1.0f,3.74f,0.2354f } },
    { { 6.823f,9.234f,1.097f } },
};

Самый внешний для массива, следующая пара для структуры plane3D, а следующая для структуры coordinates3D plane3D.

  • 0
    Ну хорошо .. это сработало .. :)
  • 0
    Если мне нужно изменить мой plane.h на координаты 3D plane1; координаты 3D плоскости2; как разместить скобки массива точек? ..
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню