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

Указатель вне корректного диапазона - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Погрешность вычислений http://www.cyberforum.ru/cpp-beginners/thread929580.html
Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход бензина, когда закончится ввод. Вроде все сделал правильно, но когда ввожу данные которые приведены в качестве примера у авторов, у меня средний расход считается почему - то с очень большой...
C++ Битовые операции Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для первых двух) и только битовые и арифметические операции (для третей), которые: 1) Функция, которая возвращает 1, если значения битов в двух заданых позициях беззнакового длинного целого числа совпадают. 2) Функция, которая меняет местами соседние группы из 16 битов в заданом беззнаковом длинном... http://www.cyberforum.ru/cpp-beginners/thread929550.html
C++ виртуальные базовые классы
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? попитался реализовать... // Using virtual base classes. #include <iostream> using std::cout;
C++ Какие требования нужно выполнить, чтобы стать Junior developer, Middle и Senior developer?
Быть может не совсем в ту ветку форума написал, но мне показалось, что здесь я смогу получить квалифицированный ответ с большей вероятностью! Если что, уж извини админ! Пока только учусь в университете. Хочется понять как, кому и за что присваиваются квалификации Junior, Middle, Senior developer. Какие требования должен выполнить для этого программист? Сколько времени в среднем требуется на...
C++ error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) http://www.cyberforum.ru/cpp-beginners/thread929501.html
Добрый день,помогите пожалуйста разобраться почему не работает код.Заранее спасибо. #include <stdio.h> #include <iostream> int Add (int x, int y ); { std::cout << "In Add(), received " << first << " and " << second << endl ; return (first + second); }
C++ shared_ptr и vector почему в vector нельзя засунуть shared_ptr ? c:\qt\tools\mingw48_32\lib\gcc\i686-w64-mingw32\4.8.0\include\c++\ext\new_allocator.h|120|error: use of deleted function 'boost::shared_ptr<Ncom_din_un::Cdinamic_unit>::shared_ptr(const boost::shared_ptr<Ncom_din_un::Cdinamic_unit>&)'| Добавлено через 31 секунду #if __cplusplus >= 201103L template<typename _Up, typename... _Args> ... подробнее

Показать сообщение отдельно
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
27.07.2013, 17:42     Указатель вне корректного диапазона
C++
1
2
3
4
5
6
7
void f(T a)
{
 T v[200];
 T p* = &v[0];
 p--;
 *p = a; // тут p вне корректного диапазона, почему? 
}
объясните этот момент плиз, я так понял, что когда мы дикрементируем указатель (p--), то т.к. указатель ссылался на начальный элемент массива типа T, то теперь он может ссылаться на другой тип, типа вышел из корректного lиапазона. Но почему не будет работать присваивание корректного адреса. Или типа указатель "испортился" когда сделали (p--)? А "починить" мы может только с помощь (p++). Но блин, почему так работает, в чем смысл, где логика?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru