LINUX.ORG.RU

Как правильно создать, заполнить и перебрать потом массив?

 ,


0

2

Создаю массив , заполняю и перебираю его, но видимо неправильно сделал и у меня из-за этого sigsegv

            QVector<QVector<QString>>vv;
            QVector<QString>v_tmp;
            for(int i=0;i<res;i++)
            {
                for(int j=0;j<field_len.size();j++)
                {
                        v_tmp.push_back(codepage_str);
                }

                vv.push_back(v_tmp);
            }
            qDebug()<<"vv.size="<<vv.size();
            for(int i=0;i<vv.size();i++)
            {
                qDebug()<<"vv["<<i<<"].size="<<vv[i].size();
                d_tmp.rid = vv[i][0];
                d_tmp.p = vv[i][1];
                d_tmp.dt = vv[i][2];
                d_tmp.ds = vv[i][3];
                d_tmp.dn = vv[i][4];
                d_tmp.dd = vv[i][5];
                d_tmp.de = vv[i][6];
                d_tmp.o = vv[i][7];
                v_.push_back(d_tmp);
            }
У меня выводится значения длин массива

vv.size= 6
vv[ 0 ].size= 8
vv[ 1 ].size= 8
vv[ 2 ].size= 8
vv[ 3 ].size= 8
vv[ 4 ].size= 8
vv[ 5 ].size= 8

Не пойму уже где ошибка тут или еще где-то, может я массив неправильно перебираю?



Последнее исправление: bad_master (всего исправлений: 1)

Навскидку видно, что заполняешь ты внутренний массив по значению некоторой внешней переменной, а читаешь из предположения, что у тебя там всегда 8 элементов. Ну и сразу возникают разные идеи, как можно эту конструкцию уронить.

Сильно не вчитывался.

hobbit ★★★★★
()

Пройдись отладчиком в пошаговом режиме, хотя бы перемещение по памяти увидишь.

Непонятно, что за d_tmp и v_, и не ясно что там с размером подмассива.

Dr64h ★★★
()
Последнее исправление: Dr64h (всего исправлений: 1)
Ответ на: комментарий от bad_master

Причём приведённый кусок кода delete не содержит. И кто учит ньюфагов использовать new/delete? И уже научили как удалять после new[]?

hatred ★★★
()
Ответ на: комментарий от bad_master

Для этого существует минимально-собираюшийся код, на котором наблюдается проблема.

hatred ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.