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

Разыменование нулевого указателя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ оператор sizeof http://www.cyberforum.ru/cpp-beginners/thread285483.html
Добрый вечер! Был сделан тест. Есть класс class A { int a; char b; double c; }; В программе:
C++ Выяснение счастливого года... Всем Доброго времени суток... Народ, помогите пожалуйста написать программу в Borland c++ 3.1 Вот сама задача... Введите день и месяц своего рождения. Выясните, какой ближайший год будет для вас счастливым. Год называется счастливым, если остаток от деления суммы его цифр на 10 совпадает с аналогичным остатком сумм цифр месяца или дня рождения. Я на сколько понял нужно разложить... http://www.cyberforum.ru/cpp-beginners/thread285479.html
C++ Функции для запроса и чтения ФИО, почтового адреса и даты
Постройте функции для запроса и чтения ФИО, почтового адреса и даты, и проверьте корректность ввода, с использованием контейнерных классов и алгоритмов библиотеки. Именуйте темы осмысленно. Название темы должно максимально полно отражать её содержимое.
Матрицы и векторы C++
есть готовый код. нужно исправить код так, чтобы вводились с клавиатуры: размер матрицы, сама матрица и свободные элементы. Понимаю, что вопрос туповатый, но просто не успеваю сделать. Спасибо заранее #include <iostream.h> #include <math.h> const int n = 4; double Delta(double *X, double *x, double a); void PrintVector(double *X); int main() { double A = { { 0.32, -0.05, ...
C++ Ошибка "ссылка на неразрешенный внешний символ" http://www.cyberforum.ru/cpp-beginners/thread285460.html
#ifndef class_H #define class_H #include "stdafx.h" #include "iostream" #include "algorithm" #include "iterator" using namespace std;
C++ Получение каталога выполнения текущей программы необходимо из в ходе выполнения самой программы получить папку, в которой она выполняется знает кто-нить? есть всякие GetCurrentDir, но без понятия как эти DWORD переконвертить в string подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17621 / 5845 / 375
Регистрация: 30.03.2009
Сообщений: 16,118
Записей в блоге: 26
29.04.2011, 12:17
А покажи, что заошибку выдаёт MSVS? Я что-то в этом коде не заметил, что ошибку должно давать

Добавлено через 3 минуты
А... тьфу ты, *context

Смысл того, что в gcc нет ошибки - из-за того, что нет реального использования значение *context. На том сайте, котором ты смотришь, gcc запускается с оптимизациями, а потому он неиспользуемое выражение попросту удалил. В MSVS при включении оптимизаций скорее всего будет то же самое

Добавлено через 2 минуты
Вот короткий пример:

C
1
2
3
4
5
6
7
int main()
{
  int x, *p;
 
  p = (int*)0;
  x = *p;
}
Переменная x нигде не используется, а следовательно "x = *p;" является мёртвым кодом и в режиме с оптимизациями компилятор его удаляет. А без оптимизаций компилятор не удаляет ничего. В итоге без оптиимзаций код ломается, а с оптимизациями проходит:

Код
$ gcc t.c
$ ./a.out
Segmentation fault
$ gcc t.c -O2
$ ./a.out
<ok>
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru