Задать вопрос
  • Как вернуть массив из структуры?

    @RandomCraft Автор вопроса
    Cпасибо, благодаря комментарию стал лучше понимать указатели. А ещё понял почему в верном варианте кода(который ниже), выводилось что-то непонятное - выводился адрес массива, а не сам массив, я этого никак понять не мог, думал что что-то я не так написал (надо же, вроде C++ начал раньше изучать, а ошибка по итогу вылезла из-за знания python(там массив можно полностью выводить по его имени) ), написал то я всё верно до вывода, а вот с выводом запорол)). По этому мне следовало написать "cout << b[0] << b[1] << b[2] << endl;" вместо "cout << b << endl;".

    Зато с вашим комментарием углубил свои знания языка. Спасибо.

    #include <iostream>
    using namespace std;
    
    struct ivector3d {
    
        int arrray[3];
        int* get() {
            return arrray;
        }
    };
    
    void scale(ivector3d* v, int k) {
        for (int i = 0; i != 3; ++i)
            v->arrray[i] *= k;
    }
    
    
    int main() {
    
        ivector3d iv3d = { 1,1,1 };
        scale(&iv3d, 2);
    
        int* b = iv3d.get();
        cout << b << endl;
    }