Двумерный массив в структуре, как правильно использовать?

Не могу разобраться.
Код такой. У нас функция должна возвращать 3 массива. Чтобы это реализовать, решил использовать структуры.

struct hsv{
   double h_buf;
   double s_buf;
   double v_buf;
};

hsv rgb2hsv(struct hsv img, unsigned char y, unsigned char x){
 //Размеры массивов мы получаем в функции
 img.h_buf[y][x];
 img.s_buf[y][x];
 img.v_buf[y][x];
 
 for(int i = 0; i < x; i++)
      for(int j=0; j < y; j++)
          {
          img.h_buf[j][i] = 1;
          img.s_buf[j][i] = 1;
          img.v_buf[j][i] = 1;
          }
  return img; 
}


Выдает ошибку на img.h_buf[y][x] - выражение должно иметь тип указателя на объект
  • Вопрос задан
  • 2296 просмотров
Решения вопроса 1
@RPG
Так правильно вам пишет компилятор. h_buf должен быть double**, а у вас просто double. И про аллокацию памяти не стоит забывать, смотрите примеры, как правильно работать с массивами в C++.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы