Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
#1

Разыменование, QSort, const void в Type*

09.02.2010, 21:24. Просмотров 1362. Ответов 5
Метки нет (Все метки)

в общем виде
C++
1
2
3
4
5
6
7
8
9
10
class type;
 
 
////////////////////
type **a;
qsort(a,n,4,sort);
//////////////////////
int sort(const void *a; const void *b){
type *x=*(type *) a; //ошибка
}
вопросс как правильно привести указатель

Добавлено через 21 минуту
вопрос снимается - разыменовал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 21:24
Ответы с готовыми решениями:

Ошибка cannot convert from type void*(classname::) () to type void*(*)(void*)
Подскажите пожалуйста как избавиться от ошибки? Есть ещё какой-либо способ,...

Выдает ошибку в void main () и const double y=6.61*pow(10, -11);
Сила притяжения F между телами массами m1 и m2, находящимися на расстоянии r...

Non-const lvalue reference to type
Добрый день. Мне надо передать указатель на матрицу (Шахматная доска) Piece*...

const static vector<type>
Мне нужно создать внутри класса вектор цветов предлагаемых в конструкторе как...

Классы: ка победить ошибку из "const Type" в "Type &"
Создаю свой класс class MyClass {private: int *dat; WCHAR *buf; inline...

5
Evg
Эксперт CАвтор FAQ
19134 / 6976 / 522
Регистрация: 30.03.2009
Сообщений: 19,628
Записей в блоге: 30
09.02.2010, 22:59 #2
C
1
const type *x = (const type*) a;
Теоретически модификатор const не нужен, но для контроля от собственных ошибок можно его и написать
0
easybudda
Модератор
Эксперт CЭксперт С++
10029 / 5952 / 1486
Регистрация: 25.07.2009
Сообщений: 11,251
09.02.2010, 23:40 #3
Evg, у него просто указатель лишний раз разыменовывается, а так всё равно константный указатель на void к неконстантному на type приводится. Второй вариант:
C
1
type x = *(type*)a;
0
Evg
Эксперт CАвтор FAQ
19134 / 6976 / 522
Регистрация: 30.03.2009
Сообщений: 19,628
Записей в блоге: 30
09.02.2010, 23:45 #4
Ога... название темы я что-то невнимательно прочитал
0
breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
09.02.2010, 23:59  [ТС] #5
нет,всё не так, правильный вариант
C++
1
2
polyQue *ptmp1=*((polyQue**)a);
polyQue *ptmp2=*((polyQue**)b);
фактически я просто не так преобразую объекты, мине для работы нужен был указатель на объект а я сортирую указатели на указатель на объект, а QSort добавляет к этим указателям ещё один указатель; в итоге я привожу const void * к polyQue * в первом случае, и по этому не могу разыменовывать указатель, что в последствии вызывает ошибку при исполнении, по этому тип нужно было привести к ** а потом * снять и в результате с обоих сторон оказывается polyQue*!
0
easybudda
Модератор
Эксперт CЭксперт С++
10029 / 5952 / 1486
Регистрация: 25.07.2009
Сообщений: 11,251
10.02.2010, 00:23 #6
breate, добавить где-то в начале
C
1
2
typedef polyQue* type;
...
и будет точно, как у меня... Это уже вариации на тему. Естественно, если сортируется массив указателей, то и передаются указатели на указатели...
0
10.02.2010, 00:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2010, 00:23

Как узнать параметры изображения, если оно представлено в виде const void* и размера данных
Доброго. Собственно проблема в шапке. Файл изображения скачивается из...

int const * const foo(const int* param) const - разъясните значение квалификаторов
int const * const foo(const int* param) const ...

Странная ошибка invalid initialization of non-const reference of type 'std::vector<oneVec>::iterator&
Пишу я значит двухмерный вектор, решаю проверить наличие ошибок(я просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru