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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Погрешность вычислений http://www.cyberforum.ru/cpp-beginners/thread929580.html
Читаю книгу Дейтелов "Как программировать на С++", попалась следующая задача, где нужно вводить кол-во бензина, пройденный путь, исходя из этих данных вычислять миль/галлон и вычислить средний расход...
C++ Битовые операции Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для первых двух) и только битовые и арифметические операции (для третей), которые: 1) Функция, которая... http://www.cyberforum.ru/cpp-beginners/thread929550.html
C++ Виртуальные базовые классы: какие требования предъявляются к иерархии наследования?
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? попитался реализовать... // Using virtual base classes. #include...
C++ Какие требования нужно выполнить, чтобы стать Junior developer, 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 " <<...
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... подробнее

Показать сообщение отдельно
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414

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

27.07.2013, 17:42. Просмотров 425. Ответов 3
Метки (Все метки)

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++). Но блин, почему так работает, в чем смысл, где логика?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru