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

Ошибка приведения типов в MSVS 2008 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Send keys http://www.cyberforum.ru/cpp-beginners/thread157890.html
Привет. Мне нужна помощ: вот в VB6 есть функция SendKeys естьли похожая функция в C++ (желательно с примером) спасибо :)
C++ Как через GDI нарисовать пиксел на окне? Как через GDI нарисовать пиксел на окне? http://www.cyberforum.ru/cpp-beginners/thread157881.html
Суммирование наибольших элементов в каждой нечетной строке матрицы C++
Составить функцию, в которой производится суммирование наибольших элементов в каждой нечетной строке матрицы А и наименьших элементов из каждой строки с четным номером.
C++ Статистика вхождения слов в массиве файлов (~50Gb)
Есть задача: собрать статистику вхождения слов в массиве файлов (~50Gb) с использованием библиотеки X (синтаксический анализатор). Библиотека X написана не идеально, но доступных её аналогов нет. Библиотека X может выкидывать segmentation fault в зависимости от обрабатываемого файла, т.е. её код не стабилен в 100% случаев. Напрашивается решение: написать менеджер процессов, запускающий обработку...
C++ Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении? http://www.cyberforum.ru/cpp-beginners/thread157861.html
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые операции. В качестве параметров думаю использовать не стандартные define-ы,а перечисление enum. Можно ли задать тип значений для членов enum явно(мне в конкретном случае нужен unsigned int)? Что будет при битовой операции,если значение результата выходит за пределы типа (даже не уверен,возможно ли,но вроде бы да)?
C++ ООП реализованная через паттерны проектирования Друзья мои дорогие, очень прошу , если у кого есть готовые приложения на языке С++ где можно увидеть реализацию паттернов проктирования , не могли бы скинуть для проссмотра или хотя бы код с коммментариями , пожалуйста. спс за внимание подробнее

Показать сообщение отдельно
abiprofi
48 / 48 / 2
Регистрация: 04.08.2010
Сообщений: 110
07.08.2010, 18:54     Ошибка приведения типов в MSVS 2008
В данном примере получим TRUE1 и TRUE3!!!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int *p;
 p = (int*)malloc(10*sizeof(int));//new int[10];
 *p = 0;
 if(*p==0)
 {
  ShowMessage("TRUE1");//Label1->Caption =  "true";//это истина
 }
 if(*p)
 {
  ShowMessage("TRUE2");//Label2->Caption =  "true";//это не сработает
 }
 if(!*p)
 {
  ShowMessage("TRUE3");//Label3->Caption =  "true";//это истина
 }
 free(p); //delete [] p;
В данном примере получим TRUE2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int *p;
 p = (int*)malloc(10*sizeof(int));//new int[10];
 //*p = 0;ВНИМАНИЕ СЮДА!!!
 if(*p==0)
 {
  ShowMessage("TRUE1");//Label1->Caption =  "true";//это не сработает
 }
 if(*p)
 {
  ShowMessage("TRUE2");//Label2->Caption =  "true";//это истина
 }
 if(!*p)
 {
  ShowMessage("TRUE3");//Label3->Caption =  "true";//это не сработает
 }
 free(p); //delete [] p;
То что я показал и то что сравнивается у тебя разные вещи!!!

Добавлено через 11 минут
Господин Niсk Alte абсолютно прав!!!

Хотя это сработает:

C++
1
2
3
4
5
6
7
8
9
 char array [] = {0, 'l', 'x', 't', 's', 's' };
 
 list<char> str (array, array + 6);
 list<char>::iterator i;
 
 for (i = str.begin(); i != str.end(); i++)
 {
  if(*i == 0){ShowMessage("Чушь, но приятно");}//ЭТО СРАБОТАЕТ!!!
 }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru