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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
#1

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

27.07.2013, 17:42. Просмотров 408. Ответов 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++). Но блин, почему так работает, в чем смысл, где логика?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2013, 17:42     Указатель вне корректного диапазона
Посмотрите здесь:

Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
указатель на указатель или присваивание объекта C++
Подскажите ,пожалуйста,как отобразить схему алгоритма оператора свитч в с++? нигде не могу найти корректного ответа( C++
C++ Не получается исправить ошибку (Вводится диапазон, где 1-ое число-начало диапазона, 2-ое число приращени, 3-е число конец диапазона)
C++ Преобразовать указатель одного типа в указатель другого.
C++ Рандом выводит числа вне набранного диапазона
C++ Указатель на указатель и Нарушение прав доступа
Определить, есть ли в массиве элементы меньше хотя бы одного из значений T1, T2 и находящиеся вне диапазона C++
FindFirstFile -получение корректного имени файла C++
В массиве каждый элемент значение которого лежит вне заданного диапазона возвести в квадрат C++
C++ Указатель на указатель внутри структуры
Указатель на указатель заполнение матрицы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12514 / 7076 / 794
Регистрация: 27.09.2012
Сообщений: 17,477
Записей в блоге: 2
Завершенные тесты: 1
27.07.2013, 17:43     Указатель вне корректного диапазона #2
C++
1
T p* = &v[0];
это что?
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
27.07.2013, 17:51  [ТС]     Указатель вне корректного диапазона #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
T p* = &v[0];
это что?
опечатка, T* p конечно...
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12514 / 7076 / 794
Регистрация: 27.09.2012
Сообщений: 17,477
Записей в блоге: 2
Завершенные тесты: 1
27.07.2013, 18:03     Указатель вне корректного диапазона #4
Цитата Сообщение от gore-lykovoe Посмотреть сообщение
опечатка, T* p конечно...
тогда после этого
C++
1
p--;
в p содержится адрес элемента v[-1] и поэтому
C++
1
*p = a; // тут p вне корректного диапазона, почему?
аналогично в данном случае
C++
1
v[-1]=a;
Yandex
Объявления
27.07.2013, 18:03     Указатель вне корректного диапазона
Ответ Создать тему
Опции темы

Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru