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

Работа функции qsort - объяснить работу функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дерево структур "семья" - Найти и вывести имя младшего ребенка у Иванова И. И http://www.cyberforum.ru/cpp-beginners/thread1228840.html
Здравствуйте. Помогите, пожалуйста. У меня возникли проблемы. Вот задание: Описать массив записей "семья". -------------------------------------------------------------- Отец ! Мать ! Ребенок ! ! Ребенок! --------------------------------------- ----------- Ф.И.О.!дата !Ф.И.О.!дата ! Имя !дата ! ...... ! Имя !дата ! !рожд.! ...
C++ Std::thread, создать указатель на член класса Есть класс #pragma once #include <map> #include <vector> #include <string> #include <thread> //This class allows to calculate quadratic equation class SquareSolver { public: http://www.cyberforum.ru/cpp-beginners/thread1228832.html
C++ Найти слова в файле, которые больше 10 букв и вывести первое на экран
Помогите понять и решить проблему, пожалуйста. Задача такова: есть файл со словами, необходимо найти слова, которые больше 10 букв и вывести первое на экран. Сделать это нужно с помощью функции(поиск по дереву и вывод на экран), которая принимает, как параметр указатель на другую функцию(задаем условие). Компилятор выдает ошибку: error C2664: Tree<T>::SearchIf: невозможно преобразовать...
SpRecord, SDK - записать номер звонившего абонента C++
При поступлении звонка на экран выводиться номер телефона, как сделать так, чтобы номер записывался сразу на компьютер? Или хотя бы как узнать номер? http://www.sprecord.ru/developers/sdk
C++ Как преобразовать типы данных? http://www.cyberforum.ru/cpp-beginners/thread1228706.html
есть переменные int var1; int var2; int result; я хотел бы не создавать еще 3 переменных типа double, для операции result = var1 / var2; а воспользоваться уже имеющимися типа int. как преобразовать на время операции деления эти переменные в тип например double или float.
C++ Самоучитель С. Прата Нарисовать треугольник Напишите программу, использующую вложенные циклы, которая запрашивает ввод количества отображаемых строк. Затем она отображает указанное кол-во строк, заполненных звездочками. Причем кол-во звездочек в строке соответствует ее порядковому номеру. Перед звездочками выставляются точки так, чтобы в каждой строке общее количество символов было равно указанному кол-ву строк. подробнее

Показать сообщение отдельно
Vtulhu
369 / 375 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
20.07.2014, 17:58     Работа функции qsort - объяснить работу функции
Как же компилятор поймет, как вычитать одно из другого, если он не знает, на что указывает этот указатель? Что там лежит по тому адресу, int или double? Сейчас это указатели "вообще". Поэтому надо сказать компилятору, что arg1 и arg2 - это указатели на int. А значит, надо привести их к типу (int*). Возможно, вот так будет понятнее:

C
1
2
3
4
5
6
7
8
int intcmp(const void* va, const void* vb)
{
    int* pa = (int*)aa;
    int* pb = (int*)bb;
    int a = *pa;
    int b = *pb;
    return ( a < b )? -1 : (a != b);
}
Кстати, возвращать в этой функции разность чисел - большая ошибка. Если a = 2000000000, а b = -2000000000, то на 32-битной платформе произойдет переполнение. a - b = -294967296. Будет такой эффект, как будто a < b.
 
Текущее время: 17:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru