Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
#1

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

09.02.2010, 21:24. Просмотров 1160. Ответов 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 минуту
вопрос снимается - разыменовал
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 21:24     Разыменование, QSort, const void в Type*
Посмотрите здесь:

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

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

const static vector<type> - C++
Мне нужно создать внутри класса вектор цветов предлагаемых в конструкторе как дефолтные... лучше static, лучше const... главное - чтобы...

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

Разыменование указателя this - C++
Здравствуйте, Имеется код с перегрузкой оператора &quot;+&quot;, объясните пожалуйста, что делает эта строка: matrix sum(*this); Весь...

Разыменование указателя - C++
Есть некий указатель на объект класса? Class1 *ptr = new Class1(); Можно ли эго разыменовать на постоянной основе, так, чтобы не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт CАвтор FAQ
17547 / 5785 / 370
Регистрация: 30.03.2009
Сообщений: 15,934
Записей в блоге: 26
09.02.2010, 22:59     Разыменование, QSort, const void в Type* #2
C
1
const type *x = (const type*) a;
Теоретически модификатор const не нужен, но для контроля от собственных ошибок можно его и написать
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,507
09.02.2010, 23:40     Разыменование, QSort, const void в Type* #3
Evg, у него просто указатель лишний раз разыменовывается, а так всё равно константный указатель на void к неконстантному на type приводится. Второй вариант:
C
1
type x = *(type*)a;
Evg
Эксперт CАвтор FAQ
17547 / 5785 / 370
Регистрация: 30.03.2009
Сообщений: 15,934
Записей в блоге: 26
09.02.2010, 23:45     Разыменование, QSort, const void в Type* #4
Ога... название темы я что-то невнимательно прочитал
breate
56 / 56 / 2
Регистрация: 23.10.2009
Сообщений: 250
09.02.2010, 23:59  [ТС]     Разыменование, QSort, const void в Type* #5
нет,всё не так, правильный вариант
C++
1
2
polyQue *ptmp1=*((polyQue**)a);
polyQue *ptmp2=*((polyQue**)b);
фактически я просто не так преобразую объекты, мине для работы нужен был указатель на объект а я сортирую указатели на указатель на объект, а QSort добавляет к этим указателям ещё один указатель; в итоге я привожу const void * к polyQue * в первом случае, и по этому не могу разыменовывать указатель, что в последствии вызывает ошибку при исполнении, по этому тип нужно было привести к ** а потом * снять и в результате с обоих сторон оказывается polyQue*!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2010, 00:23     Разыменование, QSort, const void в Type*
Еще ссылки по теме:

Указатели и разыменование - C++
Я как то раньше не вдавался в эти подробности, разыменование или нет, просто ставил звездочку и все, и для меня было varOne и *varTwo по...

Ссылка и Разыменование в с++ - C++
прошу кто можеть дать видеоурок(или что угодно) на эту тему.я очень затрудняюсь понят это.нужно много примеров из самого примитива до...

Разыменование указателя! - C++
Всем привет, объясните почему и как это работает? int (*pf)(void); int f(void) { static int count ; pf = &amp;f; //...

Разыменование итератора - C++
Делаю предикат-функцию поиска внутри вектора,состоящего из экземпляров класса.Решил использовать итераторы.То есть мне нужно обратиться к...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт CЭксперт С++
9470 / 5483 / 927
Регистрация: 25.07.2009
Сообщений: 10,507
10.02.2010, 00:23     Разыменование, QSort, const void в Type* #6
breate, добавить где-то в начале
C
1
2
typedef polyQue* type;
...
и будет точно, как у меня... Это уже вариации на тему. Естественно, если сортируется массив указателей, то и передаются указатели на указатели...
Yandex
Объявления
10.02.2010, 00:23     Разыменование, QSort, const void в Type*
Ответ Создать тему
Опции темы

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