У меня проблемы с указателями и ссылками на парные.Использование указателей для доступа к элементам QVector
Я хочу получить доступ к элементам в QVector по именам. Вектор содержит двойники:
QVector<double> properties;
properties.append(28.0);
properties.append(1.0);
properties.append(44.0);
properties.append(0.001);
Теперь я создаю указатели на двойники:
double* Amplitude;
double* Frequency;
double* PhaseDifference;
double* Stepsize;
Эти указатели должны обеспечивать доступ к элементам моего вектора:
Amplitude = &properties[0];
Frequency = &properties[1];
PhaseDifference = &properties[2];
Stepsize = &properties[3];
На моем взгляде разыменования этого указатели должны дать мне правильные значения, но это не так. В этом случае я получил нули для первых двух указателей, а третий и четвертый были правильными.
Я попытался использовать больше записей в векторе, и результат состоял в том, что только последние два имели правильные значения. Что там происходит?
Я создаю и печатаю значения в конструкторе. Печать вектора дает правильные значения!
Есть ли у кого-нибудь идеи?
Вы изменили (а) предмет? Это может привести к недействительности всех указателей. –
Кроме того: если у вас есть небольшое постоянное число (четыре) именованных свойств, вы не должны использовать 'QVector' вообще. –
Да ... Я сделал :(Вы имеете в виду, что изменение размера может перемещать вектор? ...Это имеет смысл, потому что ему нужны соседние ячейки памяти ... спасибо за эту идею ... Я изменю порядок кода и проведу результат: D – user1147533